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”
我究竟做错了什么?
谢谢。
您对路线和景观的理解不正确。
第一个参数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
归档时间: |
|
查看次数: |
19974 次 |
最近记录: |