Laravel-重定向至控制器


Laravel - redirect to controller

我一直得到: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');
    }  
});

控制器:

用户控制器

public function createUser()
{
   // removed everything else, the return redirect action isn't working.
  return Redirect::action('HomeController@showHome');
}

首页控制器

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

当用户加载网页时,筛选器会检查他是否是来宾,如果是,请转到 UserController.php 中的 createUser 方法。它创建用户,但不会重定向回 HomeController。如何停止上述错误,使其重定向回家庭控制器?

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

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

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

解决方案 1:路由.php

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

解决方案2:家庭控制器.php

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

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