Laravel - 路由到“视图”内的文件夹

Eth*_*Kee 5 php routes laravel laravel-4

我对 Laravel 还很陌生,正在学习中。通常,例如,如果我想访问文件“login.blade.php”(位于“views”文件夹中),路线通常是:

Route::get('/login', array('as' => 'login', 'uses' => 'AuthController@getLogin'));
Run Code Online (Sandbox Code Playgroud)

所以上面的方法工作得很好。但是如果我想在“views”文件夹中包含文件夹怎么办?例如,我想路由文件“login.php”。

- views 
 -- account 
  --- login.blade.php
Run Code Online (Sandbox Code Playgroud)

我尝试使用:

Route::get('/account/login', array('as' => 'login', 'uses' => 'AuthController@getLogin'));
Run Code Online (Sandbox Code Playgroud)

但我收到一条错误消息“Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException”

我究竟做错了什么?

谢谢。

bra*_*ess 4

您对路线和景观的理解不正确。

第一个参数Route::get是将在您的 url 中使用的路由 URI,domainname.com/routeURI第二个参数可以是array()closure function或类似 的字符串'fooController@barAction'。与Route::get()渲染视图无关。路由和视图并不像您想象的那么紧密耦合。

这可以通过如下所示的闭包来完成

Route::get('login', array('as' => 'login', function()
{
    return View::make('account.login');
}));
Run Code Online (Sandbox Code Playgroud)

或者通过控制器动作

路线文件:

Route::get('login', array('as' => 'login', 'uses' => 'AuthController@getLogin'));
Run Code Online (Sandbox Code Playgroud)

AuthController 文件:

public function getLogin()
{
    return View::make('account.login');
}
Run Code Online (Sandbox Code Playgroud)

您可以在http://laravel.com/docs/4.2/routing找到更多信息,或者如果您喜欢视频教程,请访问http://laracasts.com