Php laravel框架中的路由

Php laravel框架中的路由,php,laravel-4,Php,Laravel 4,我使用php的laravel框架进行开发 台阶 我定义Route::resource('users','userscocontroller')然后定义route::get('user/pingme','UserController@pingme'); 当我调用pingme函数时,它不起作用。我得到的响应代码是200,但pingme函数中的代码不起作用,我不知道为什么 然后我将其更改为Route::post('user/pingme','UserController@pingme');它可以根据需

我使用php的laravel框架进行开发 台阶

  • 我定义
    Route::resource('users','userscocontroller')然后定义
    route::get('user/pingme','UserController@pingme');

  • 当我调用pingme函数时,它不起作用。我得到的
    响应代码是200
    ,但
    pingme
    函数中的代码不起作用,我不知道为什么

  • 然后我将其更改为
    Route::post('user/pingme','UserController@pingme');它可以根据需要正常工作

  • 然后我做的是,删除了
    Route::resource('users','userscocontroller')
    和make-get-route-to-ping-me函数和make-get调用,它开始正常工作


  • 这是框架中的任何错误(罕见的事情)还是我遗漏了什么(可能是的)?“帮助我…”

    在路由文件中,路由的顺序需要如下所示:

    Route::get('user/pingme', 'UserController@pingme');
    
    Route::post('user/logout', 'UserController@logout')->before('auth');
    
    Route::resource('user', 'UserController');
    

    如果
    Route::resource('user','UserController')
    位于其他路由之前,则
    GET
    user/pingme
    的请求将由
    UserController
    内部的
    show
    方法处理,因为这是资源丰富的控制器的工作方式。因此,
    user
    Route::resource
    需要排在带有
    user/
    前缀的所有其他路由之后。

    路由文件的工作原理如下:-

  • 如果您只为控制器编写了一个映射,那么它需要位于所有其他路由映射的底部,否则您的程序控制器将只从用户控制器选择路由,并重定向到用户控制器。 因此,所有路线的正确顺序是:-

    路由::get('user/pingme','UserController@pingme');

    路由::post('用户/注销','UserController@logout')->在('auth')之前

    路由::资源('user','UserController')


  • 在这种情况下,是否确实需要使用
    Route::resource()
    ?它仅与资源控制器一起使用。是的,在用户控制器中,我创建了一个存储用户,正在更新用户。请显示相关代码。这是更改
    routes.php
    文件后是否运行了
    composer dump autoload
     Route::post('user/logout', 'UserController@logout')->before('auth');
    
     Route::get('user/pingme', 'UserController@pingme');
    
     Route::resource('user', 'UserController');