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


Laravel - routing to a folder inside "views"

我对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");
}