我是Laravel的新手,我还不太确定所有路由的东西,所以我想按照我当时习惯的方式做事,即通过url访问控制器方法。所以我有一个名为User的控制器,其中一个名为getLogin()的函数。我想通过'mydomain.com/user/login'访问它。它目前不起作用,所以我该怎么做?
答案 0 :(得分:3)
虽然我同意Phil Sturgeon的文章,对于一个典型的应用程序,尽可能明显地设置路由是明智的,但在某些情况下,控制器方法方案的url段可能很方便。我有时会使用Laravel进行原型设计/测试某些代码,并需要一个可预测的url-to-method来分拆示例。你可以使用Request :: segment()获取段,并使用Laravel的Str::camel()来获取它。例如,使用如下路线:
Route::get('/lara-learn/{method}',
array(
'as' => 'lara-learn_' . Request::segment(2),
'uses' => 'LaraLearnController@' . Str::camel( Request::segment(2) )
)
);
您可以访问/lara-learn/lara-config
并登陆laraConfig()方法:
class LaraLearnController extends BaseController {
public function laraConfig(){
return "hey from laraConfig";
}
}
如果需要,我们也可以从网址动态选择控制器,比如说使用第一段。所以我们可以更广泛地概括我们的路线:
Route::get('/{controller}/{method}',
array(
'as' => Request::segment(1) . '_' . Request::segment(2),
'uses' => studly_case( Request::segment(1) ) . 'Controller@' . Str::camel( Request::segment(2) )
)
);
访问/lara-learn/lara-config
应该让我们参与上面的laraConfig方法示例。
答案 1 :(得分:1)
Laravel不会以controller/method
方式自动映射路线。
您尚未发布routes.php文件中的内容,但最简单的方法之一是执行此操作:
Route::get('users/login', array('as' => 'login', 'uses' => 'User@getLogin'));
但是,有多种方法。您可以考虑阅读有关routing
的文档答案 2 :(得分:0)
Route :: resource(' / recipes',' recipesController @ index');
你必须像这样制作路线,你必须在网址中以
的形式访问它本地主机/项目名称/公共/配方