我仍然是laravel的新手并且正在学习。 通常,例如,如果我想访问文件" login.blade.php" (位于" views"文件夹中),路线通常为:
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"
我做错了什么?
谢谢。
答案 0 :(得分:3)
您对路线和观点的理解不正确。
Route::get
的第一个参数是路径URI,它将在您的网址中用作domainname.com/routeURI
,第二个参数可以是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
答案 1 :(得分:1)
您需要在AuthController.php控制器中编写以下代码
public function getLogin()
{
return View::make("account.login");
}