【问题标题】:Controller method not found in laravel 4.1在 laravel 4.1 中找不到控制器方法
【发布时间】:2014-03-02 22:13:29
【问题描述】:

您好,我在 Laravel 4.1 中遇到了两个路由/控制器的问题

我每次都收到缺少方法的错误,但我认为一切都很好(正如我检查的那样)

这里是结果

路线

# Review Management
Route::post('reviews/{review}/approved', 'AdminReviewsController@postApproved')
->where('review', '[0-9]+');
Route::post('reviews/{review}/disapproved', 'AdminReviewsController@postDisapproved')
->where('review', '[0-9]+');
Route::controller('reviews', 'AdminReviewsController');

这就是方法本身。

    public function postApproved($review) {

    Review::where('id', '=', $review)->update(array('approved' => 1));

    Redirect::back()->with('notice', 'Review accepted');
}

public function postDisapproved($review) {

    Review::where('id', '=', $review)->update(array('approved' => 0));

    Redirect::back()->with('notice', 'Review denied');
}    

我不知道问题是什么我什至尝试了 composer dump-autoload 20 次但没有成功。那么我该如何解决呢?

【问题讨论】:

  • 这是您从artisan routes 列出的所有路线吗?如果路由显示,则您可能有一个不包含该方法的冲突控制器。
  • 这是所有路线。 pastebin.com/raw.php?i=yPKKWnkE我不知道是否有另一个控制器冲突,但我对 laravel 不是很有经验,所以我可能忽略了一些东西
  • 你有路由组,对吧?恐怕您必须将它们全部展示出来,因为问题似乎出在另一段代码中。
  • @AntonioCarlosRibeiro 是的,我有小组。在这里,您可以查看我的路线的完整列表。 pastebin.com/jVVBHW8d
  • 这就是您的路由在此处生成的方式:pastebin.com/raw.php?i=bddhX8rt(我刚刚将所有控制器名称更改为 HomeController)。已批准和未批准不为空白。是什么生成了其他过滤器(admin_b1b79d、manage_cmets_152828)?这可能是您的故障的根源。

标签: php laravel laravel-4


【解决方案1】:

尝试将route::controller() 放在其他两个之前

【讨论】:

  • 这不是路由问题的问题,只是数据表插件发送了一个 get 方法而不是 post,因此将路由更改为 any 解决了问题
猜你喜欢
  • 2014-01-04
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 2023-01-27
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 2016-04-04
相关资源
最近更新 更多