我对laravel还是个新手,正在慢慢学习。例如,通常情况下,如果我想访问文件"login.blade.php"(位于"视图"文件夹中),路径通常为:
Route::get('/login', array('as' => 'login', 'uses' => 'AuthController@getLogin'));
所以上面的方法很好。但是,如果我想在"视图"文件夹中包含文件夹,该怎么办?例如,我想路由文件"login.php".
- views
-- account
--- login.blade.php
我尝试使用:
Route::get('/account/login', array('as' => 'login', 'uses' => 'AuthController@getLogin'));
但我收到一个错误,说"Symfony''Component''HttpKernel''Exception''NotFoundHttpException"
我做错了什么?
谢谢。
您对路线和视图的理解不正确。
Route::get
的第一个参数是将在url中用作domainname.com/routeURI
的路由URI,第二个参数可以是array()
、closure function
或类似'fooController@barAction'
的字符串。Route::get()
与渲染视图无关。路线和视图并不像你想象的那样紧密相连。
这可以通过下面这样的闭包来完成
Route::get('login', array('as' => 'login', function()
{
return View::make('account.login');
}));
或控制器动作
路由文件:
Route::get('login', array('as' => 'login', 'uses' => 'AuthController@getLogin'));
AuthController文件:
public function getLogin()
{
return View::make('account.login');
}
您可以在http://laravel.com/docs/4.2/routing或者,如果您喜欢视频教程,请转到http://laracasts.com
您需要在AuthController.php Controller 中编写以下代码
public function getLogin()
{
return View::make("account.login");
}