【问题标题】:How to remove default index action on controller from laravel 5.5如何从 laravel 5.5 中删除控制器上的默认索引操作
【发布时间】:2018-10-02 18:50:01
【问题描述】:

我使用的是 Laravel 5.5 版本。我在routes.php 文件中定义了我的路线。像这样:-

$router->group(['middleware' => 'auth'], function($router) {
    $router->resource('/route-name', 'myController@myMethodName'); 
}); 

但是当我运行我的应用程序时,laravel 给出了错误:-

[App\Http\Controllers\myController] 上不存在方法 [myMethodName@index]

默认情况下,在我在路由中定义的操作之后放置索引操作。
它在 laravel 5.3 版本中运行良好。请解决我的问题..

【问题讨论】:

  • $router->resource() 只需要控制器名称作为第二个参数。您还添加了方法名称。您可能想改用$router->get(path, controller@method)

标签: php laravel methods routes controllers


【解决方案1】:

按照@devk 在评论中所说的那样试试这个:

$router->get('/route-name', 'myController@myMethodName');

【讨论】:

    【解决方案2】:

    默认 resource 请求在路由中创建 CRUD 请求。对于Controller中的以下方法。

    • 索引(GET)
    • 创建(GET)
    • 存储(POST)
    • 显示(GET)
    • 编辑(获取)
    • 更新(PUT/PATCH)
    • 删除(DELETE)

    您不能在resource 路由中传递方法名称。

    如果您想覆盖其中任何一个。你必须在resource Route 下写一个新的route。喜欢

    Route::get('url','Controller@newMethod');
    

    并用 newMethod
    更改 Controller 中的方法名称 更多详情请查看laravel documents

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 2013-10-11
      • 2014-08-07
      相关资源
      最近更新 更多