#laravel #laravel-8 #inertiajs
Вопрос:
У меня есть этот маршрут в web.php
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
это в CRMController
классе
public function addProject(){
return Inertia::render('CRM/Projects/AddProjectPage');
}
Независимо от ресурса, который я указываю функции для визуализации, она возвращает 404
Я уверен, что ресурс существует, CRM/Projects/AddProjectPage
и я пробовал использовать другие ресурсы, на которых также есть рабочие ссылки на сайте, так что они, безусловно, есть, и это в любом случае возвращает мне 404
на маршрут ссылаются следующим образом в компоненте Vue
<inertia-link :href="route('crm.addProject')">
Add Project
</inertia-link>
Должно быть, я упускаю что-то совершенно очевидное, дополнительная пара глаз помогла бы, заранее спасибо
ИЗМЕНИТЬ: ошибка в консоли такова
Failed to load resource: the server responded with a status of 404 (Not Found) projects/add:1
Редактировать:
выход из php artisan route:list
| | GET|HEAD | crm/projects/add | crm.addProject | AppHttpControllersCRMController@addProject | web
Комментарии:
1. маршрут php artisan:список используйте эту команду, чтобы получить список всех маршрутов
2. @Shailendra добавил соответствующий вывод в вопрос
3. <ссылка по инерции :href=»маршрут(‘crm.addProject’)»> вы проверяли, какое значение здесь имеет href и хорошо ли работают другие маршруты проверки подлинности или только этот маршрут выдает ошибку
4. @Shailendra он отображает
<a href="https://www.britevisual.com/crm/projects/add">Add Project</a>
и да, все остальныеauth
маршруты работают правильно, включая процесс маршрута/ресурса для добавления другой модели где-то еще, копией которой является эта
Ответ №1:
Может быть, это и очевидно, но пробовали ли вы бежать
php artisan clear-compiled
composer dump-autoload
php artisan optimize
И убедитесь, что вы npm run watch
работаете, пока работаете с инерцией и Laravel.
Комментарии:
1. Эти команды не решили мою проблему, спасибо за попытку
2. javatpoint.com/npm-clear-cache Может быть, это поможет? Единственная причина, по которой я думаю, что это скорее проблема npm, чем логическая проблема, заключается в том, что ваш контроллер/маршрут/обращение ко мне выглядят правильно настроенными.
3. очистка кэша также не разрешила эту проблему, процесс контроллера/маршрута/ресурса настроен правильно, потому что это копия существующего процесса добавления другого экземпляра модели в CRM, это очень странное поведение, я ценю вашу помощь, если у вас есть еще мысли, пожалуйста, поделитесь ими
Ответ №2:
Вы можете попробовать выполнить php artisan
приведенную ниже команду для создания маршрутов с помощью Ziggy
php artisan ziggy:generate
Он сохранит ваши сгенерированные маршруты здесь
resources/js/ziggy.js
Ссылка: https://github.com/tighten/ziggy
Комментарии:
1. Спасибо, но проблема не в маршруте, а в том, что не удается найти ресурс или любой другой ресурс, если на то пошло, в том месте, которое ему указано искать
2. @Liamo’Тул вы уже проверили
resources/js/ziggy.js
, есть ли ваш маршрут?3. Ziggy объявлен в качестве директивы в базовом html-коде для приложения vue, потому что именно так оно работает по инерции, нет
resources/js/ziggy.js
, и я уверен, что это не решит проблему, еще раз спасибо за попытку4. вы добавили директиву
@routes
Blade в свой основной макет (перед JavaScript вашего приложения) ?5. да, именно это я имел в виду в последнем комментарии, это большой сайт с множеством других частей, работающих аналогично этому, это просто пример, когда что-то не так, и я не могу понять, что это такое
Ответ №3:
Проблема, которая не могла быть решена из-за недостаточной информации, предоставленной от моего имени, заключалась в заказе маршрута
этот маршрут
Route::get('crm/projects/{project:id}', [CRMController::class, 'editProjectPage'])->name('crm.project')->middleware('auth');
было объявлено ранее
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
таким образом, из-за того, что разрешение маршрута является упорядоченной вещью, это вызвало у меня проблемы, я бы сказал, что для лучшей практики все маршруты, которые проверяют пройденные параметры после того, как ваши другие маршруты не принимают параметры
вот так
Route::get('crm/projects/add', [CRMController::class, 'addProject'])->name('crm.addProject')->middleware('auth');
Route::get('crm/projects/{project:id}', [CRMController::class, 'editProjectPage'])->name('crm.project')->middleware('auth');
Комментарии:
1. Ах да, это случалось со мной и раньше, чтобы устранить такого рода проблемы, я предлагаю использовать Группы маршрутов , счастливое кодирование 🙂
2. @JasonMigz Я ценю вашу помощь, хорошего дня 🙂