我无法将redirect::to()和路由绑定在一起,它不重定向


I can not bind redirect::to() and routes together, it does not redirect

我觉得一切都很好。很简单,但我不知道。我到处都找过了。

问题:它不会重定向。它不会出错,什么都不会发生。但当我进入浏览器http://site.dev/fail时它在屏幕上显示"失败"字(所以它工作)。

routes.php:

Route::post('getir' , 'Ahir'Ticket'Controllers'TicketController@postInsert'); 
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'TicketController@postInsert');

因此该CCD_ 3在下面的控制器票证处被触发。

控制器票证:

<?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');
    }

问题是您没有从调用函数返回任何内容。

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

但是您没有将返回的Redirect传递回应用程序,所以postInsert()函数只是终止而没有任何输出。应用程序不知道postInsert()函数中发生了什么,它只是等待返回一些内容。由于没有返回任何内容,HTTP响应就是空的。为了将重定向传递回应用程序,您还必须从调用函数返回它:

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