#php #laravel
#php #laravel
Вопрос:
Я написал тест в Laravel. Тем не менее, когда я запускаю тест, он говорит:
SymfonyComponentHttpKernelExceptionNotFoundHttpException: GET http://localhost/assortments/1/items
Тест, который я написал:
public function testUserCanSeeAllHisItems() {
$this->withoutExceptionHandling();
$user = $this->signIn();
$itemCreate = Item::factory()->create(['user_id' => $user->id]);
$assortmentId = $itemCreate->assortment()->first()->id;
$response = $this->get("/assortments/{$assortmentId}/items");
$response->assertStatus(200);
}
Я попытался найти ошибку в Google, но я не нашел многого. Может ли проблема быть в моих маршрутах?
Web.php
Route::resource('category', 'CategoryController')->middleware('auth');
Route::resource('assortments/{assortment}/items', 'ItemController')->middleware('auth');
Route::resource('assortments', 'AssortmentController')->middleware('auth');
Редактировать:
Я также попробовал следующее:
Route::resource('assortments.items','ItemController')->middleware('auth');
Я тоже пробовал php artisan route:list
, и это дает:
/app/Http/Controllers/CategoryController.php): failed to open stream: No such file or directory
Ответ №1:
Ваше определение маршрута неверно.
Route::resource('category', 'CategoryController')->middleware('auth');
// Wrong definition
Route::resource('assortments/{assortment}/items', 'ItemController')->middleware('auth');
// Correct definition
Route::resource('assortments.items', 'ItemController')->middleware('auth');
Route::resource('assortments', 'AssortmentController')->middleware('auth');
Смотрите эту ссылку для получения более подробной информации; https://laravel.com/docs/8.x/controllers#restful-nested-resources
Комментарии:
1. Привет. Спасибо за ответ, я попробовал правильное определение, но оно по-прежнему выдает ту же ошибку.
2. Попробуйте
php artisan route:list
и отправьте его на свой вопрос, пожалуйста.3. Привет, я опубликовал это в своем вопросе. Пожалуйста, проверьте редактирование
4.
php artisan route:list
вызывает ошибку. Это означает, что ваше приложение laravel работает некорректно. Похоже, нам нужна отладка во время выполнения.5. Ошибка вызвана тем, что я удалил контроллер категории, модель, миграцию и представление вместе с тестами, потому что они больше не нужны. Где-то он все еще включен…