1

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

4

3 回答 3

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";
    }

}

如果我们愿意,我们也可以从 url 中动态选择控制器,比如使用第一段。所以我们可以更加概括我们的路线:

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 方法示例。

于 2014-02-08T20:59:00.707 回答
1

Laravel does not automatically map routes in controller/method fashion.

You have not posted what is in your routes.php file, but one of the simplest approaches is to do this:

Route::get('users/login', array('as' => 'login', 'uses' => 'User@getLogin'));

There are multiple approaches, though. You might consider reading the docs about routing

于 2013-10-15T15:22:07.917 回答
0

Route::resource('/recipes', 'recipesController@index');

你必须像这样制作路线,你必须在 url 中访问它

本地主机/项目名称/公共/食谱

于 2016-05-16T19:35:03.007 回答