我正在学习laravel 4。
我的路线档案的代码:
Route::post('user/admin', 'UserController@admin');
Route::get('user/login', 'UserController@login');
Route::resource('user', 'UserController');
Route::get('/', function()
{
return View::make('home');
});
我的控制器的代码:
public function admin() {
$msg = Usr::get_data();
if ($msg == "pass") {
return View::make('user.admin');
} else {
return Redirect::to('user/login');
}
}
当我使用Redirect :: to时没有问题,但如果我改为Redirect :: route,则表示路由[user / login]未定义。但我已经在routes.php中定义了它。为什么重定向::()不起作用,它们之间有什么区别?
答案 0 :(得分:4)
Redirect::route
用于named route,而Redirect::to
用于任何内部重定向。您添加的所有路线均未命名,因此您无法使用Redirect::route
来引用它们。
答案 1 :(得分:0)
Redirect::to retrurns a redirect with the flash data
文档中的一个例子
return Redirect::to('user/login')->with('message', 'Login Failed');
当Redirect::route
返回重定向到命名路线时。
return Redirect::route('profile', array(1));
检查documentation。这会让您更好理解。
编辑:
Redirect::route() can redirect with a flash data too.