Laravel - 重定向到控制器

时间:2013-11-17 07:31:32

标签: php controller laravel

我一直在:Unknown action [HomeController@showHome]

路线:

Route::get('/', ['before' => 'checkUserFilter'], 'HomeController@showHome');
Route::get('/createUser', 'UserController@createUser');

过滤器:

Route::filter('checkUserFilter', function() 
{
    if (Auth::guest()) 
    {
        return Redirect::action('UserController@createUser');
    }  

});

控制器:

UserController中

public function createUser()
{
   // removed everything else, the return redirect action isn't working.

  return Redirect::action('HomeController@showHome');
}

的HomeController

public function showHome()
{
    return View::make('home');
}

当用户加载网页时,过滤器会检查他是否是访客,如果是,请转到UserController.php中的createUser方法。它创建用户,但不会重定向回HomeController。如何停止上述错误,以便重定向回HomeController?

我还有另一个问题:除了在方法中,还有什么更好的方法来放置返回重定向操作?如果我可以在多个方面使用相同的方法,我希望如此,例如在管理控制面板中创建用户。

1 个答案:

答案 0 :(得分:1)

我假设您到HomeController的路线是存在问题的地方。

以下是两种可能的解决方案:

解决方案1:routes.php

Route::get('/', array('before'=>'checkUserFilter', 'uses'=>'HomeController@showHome'));

解决方案2:HomeController.php

public function __construct(){
    $this->beforeFilter('checkUserFilter');
}

//showHome

没有测试过,但希望有所帮助。