错误的控制器用于编辑路线(使用Laravel资源助手)

时间:2018-09-19 19:19:00

标签: php laravel controller

我当前正在使用laravel 5.4,偶然发现了我无法修复的问题。

我目前正在尝试使用Laravel resource助手将路由绑定到控制器: Route::resource('campaigns', 'CampaignsController');

当我执行PHP artisan:route list时,我正确地看到路由在那儿,我的所有CRUD端点都绑定到适当的控制器功能。另外,请注意,我目前正在对我所有需要绑定到CRUD系统的路由(我正在使用的大多数表单)都没有问题

话虽如此,每当我尝试编辑Campaign时,都会出现错误:Class App\Http\Controllers\Ads\Campaigns does not exist

我不知道为什么在指定Campaigns控制器的同时试图寻找CampaignsController控制器。广告系列路线中的所有内容均正常运行,但修改内容除外。另外,我所有其他路线都具有相同的逻辑,从未遇到过这个问题。

知道为什么要寻找错误的Controller吗?

这是我的名称空间声明和文件夹层次结构,可以(请注意adsController的路由声明方式相同,使用方式也相同)

enter image description here

enter image description here

这是我的修改方法

enter image description here

这是错误

enter image description here

2 个答案:

答案 0 :(得分:1)

您很有可能尝试在控制器中注入不存在的类。

如果没有这样的内容,请看一下控制器的构造函数或编辑路径:

public function edit(Campaigns $campaigns)
{
}

并确保您从有效的名称空间中导入Campaigns(可能不是在App\Http\Controllers\Ads名称空间中。

如果这样做没有帮助,请尝试在您的app目录中查找Ads\Campaigns的出现,以查看其使用位置。有时问题可能出在应用程序的完全不同的部分。

编辑

还要确保您没有输入任何错字。错误的是您有Campaigns,但您的模型可能是Campaign-可能在一个地方最后有额外的s吗?

答案 1 :(得分:0)

尝试使用Route :: resource('campaigns','Ads \ CampaignsController');在您的web.php文件中