我一直在: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?
我还有另一个问题:除了在方法中,还有什么更好的方法来放置返回重定向操作?如果我可以在多个方面使用相同的方法,我希望如此,例如在管理控制面板中创建用户。
答案 0 :(得分:1)
我假设您到HomeController的路线是存在问题的地方。
以下是两种可能的解决方案:
解决方案1:routes.php
Route::get('/', array('before'=>'checkUserFilter', 'uses'=>'HomeController@showHome'));
解决方案2:HomeController.php
public function __construct(){
$this->beforeFilter('checkUserFilter');
}
//showHome
没有测试过,但希望有所帮助。