如何通过Laravel中的URL访问控制器方法?

时间:2013-10-15 15:18:56

标签: php laravel laravel-4

我是Laravel的新手,我还不太确定所有路由的东西,所以我想按照我当时习惯的方式做事,即通过url访问控制器方法。所以我有一个名为User的控制器,其中一个名为getLogin()的函数。我想通过'mydomain.com/user/login'访问它。它目前不起作用,所以我该怎么做?

3 个答案:

答案 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');

你必须像这样制作路线,你必须在网址中以

的形式访问它

本地主机/项目名称/公共/配方