2014-10-09 103 views
0

一切看起来都适合我。这很简单,但我不知道。我到处寻找。我无法绑定重定向::到()和一起路由,它不会重定向

问题:它不重定向。它不会给错误没有任何反应。 但是,当我进入浏览器http://site.dev/fail 它显示“失败”在屏幕上的字(所以它的工作原理)。

routes.php文件:

Route::post('getir' , 'Ahir\Ticket\Controllers\[email protected]'); 

Route::get('fail', function() { return 'fail'; }); 

Route::get('success', function() { return 'success'; }); 

编辑一切

场景:site.dev/(主页)我按下提交该表格有这个。

form action="getir" method="POST" role="form" 

所以按钮重定向我

Route::post('getir' , 'Ahir\Ticket\Controllers\[email protected]'); 

所以这postInsert在控制器票低于触发。

控制器票:

<?php namespace Ahir\Ticket\Controllers; 

use BaseController, Input; 
//use Ahir\Ticket\Repositories\TicketInterface; 

use Ahir\Ticket\Adapters\AdapterInterface ; 

class TicketController extends BaseController { 

    public function __construct(AdapterInterface $adapter) //TicketInterface $repository 
    { 
     //$this->repository = $repository; 
      $this->adapter = $adapter; 
    } 

    public function postInsert() 
    { 
     $this->adapter->postInsert(); 

    } 
} 

那么说到这里

public function postInsert() 
{ 
    // create the validation rules ------------------------ 
    $rules = array(
     'title' => 'required',   
     'content' => 'required', 
     ); 

    $validator = Validator::make(Input::all(), $rules); 

    if ($validator->fails()) { 

     // i added here return vardump('fail'); it displays on screen. 
     // so i know that program comes here 
     // but the redirect below neither gives error nor redirect. 
     //nothing happens here. idk why! 
     return Redirect::to('fail')->withErrors($validator); 

    } else { 
     // validation successful --------------------------- 

     $this->obj->insert([ 

      'title' => Input::get('title') , 
      'content' => Input::get('content') 
      ]); 

     //here DOESNT work too. 
     return Redirect::to('success'); 
    } 
+0

您会得到什么错误?在代码中重定向的 – Quasdunk 2014-10-09 07:59:43

+0

既不会给出错误也不会重定向。 这里没有任何反应,我不明白! – ertugb0ZZ 2014-10-09 08:00:32

+0

好的,但打开调试,对吧? – Quasdunk 2014-10-09 08:01:02

回答

0

的问题是,你不从调用函数返回任何东西。

您的应用程序在票务控制器上调用postInsert()方法。该函数调用返回Redirect的另一个函数。

但是,您不会将返回的重定向传递回应用程序,因此postInsert()函数只是在没有任何输出的情况下终止。应用程序不知道postInsert()函数中发生了什么,它只是等待返回的东西。由于没有返回,所以HTTP响应只是空的。为了将该重定向传递回应用程序,您还必须将其从调用函数中返回:

public function postInsert() 
{ 
    return $this->adapter->postInsert(); 

}