Неправильный контроллер используется для редактирования маршрута (с помощью помощника ресурса Laravel) - PullRequest
0 голосов
/ 19 сентября 2018

В настоящее время я использую 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.В маршруте кампаний все ведется правильно, кроме редактирования.Кроме того, все мои другие маршруты имеют ту же логику и никогда не сталкивались с этой проблемой.

Есть идеи, почему он ищет неправильный контроллер?

Вот мое объявление пространства имен и иерархия папок, что нормально(обратите внимание, что в adsController маршруты объявлены одинаково и используются одинаково)

enter image description here

enter image description here

вот мой метод редактирования

enter image description here

и вот ошибка

enter image description here

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Попробуйте с Route :: resource ('кампания', 'Ads \ CampaignsController');в вашем файле web.php

0 голосов
/ 19 сентября 2018

Вполне возможно, что вы пытаетесь внедрить несуществующий класс в свой контроллер.

Посмотрите на конструктор контроллера или отредактируйте маршрут, если у вас нет чего-то подобного:

public function edit(Campaigns $campaigns)
{
}

и убедитесь, что вы импортируете Campaigns из допустимого пространства имен (возможно, оно не в App\Http\Controllers\Ads пространстве имен.

Если это не поможет, попробуйте найти в вашем каталоге app вхождения Ads\Campaigns, чтобы увидеть, гдеИногда проблема может быть в совершенно другой части вашего приложения.

РЕДАКТИРОВАТЬ

Также убедитесь, что вы не сделали опечатку. По ошибке у вас есть Campaigns но ваша модель, вероятно, Campaign - возможно ли, что в одном месте у вас есть дополнительные s в конце?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...