Laravel 6.x маршрут: не найдено результатов запроса - PullRequest
0 голосов
/ 02 апреля 2020

Я столкнулся с загадочной ошибкой. Я определил маршрут следующим образом:

Route::get("/customers/alla", "Customer\CustomerController@loadAllCustomers")->name("customers.all");

Когда я вызываю функцию, я получаю следующую ошибку: No query results for model [App\Models\Customer] alla

В loadAllCustomers() Я только возвращаю test для тестирования. Но ничего не появляется.

Если изменить URL-адрес на /customers/all, ошибка также изменится на all с alla.

xDebug не запускается в функции.

Что laravel пытается там делать?

Я также очистил кэш маршрутов, но он ничего не изменит

Мои "целые" маршруты. php выглядит так:

Route::get("/customers", "Customer\CustomerController@index")->name("customer.index");
    Route::get("/customers/{id}", "Customer\CustomerController@show")->name("customer.show");
    Route::get("/customers/alla", "Customer\CustomerController@loadAllCustomers")->name("customers.all");
    Route::post("/customers/store", "Customer\CustomerController@store")->name("customer.save");
    Route::post("/customers/{id}", "Customer\CustomerController@update")->name("customer.update");
    Route::get("/customers/{id}/delete", "Customer\CustomerController@delete")->name("customer.delete");
    Route::post("/customers/{id}/loadCustomerContactPersons", "Customer\CustomerController@loadCustomerContactPersons")->name("customer.contactPerson.all");
    Route::post("/customers/{id}/contactPerson", "Customer\CustomerController@createContactPerson")->name("customer.contactPerson.create");
    Route::get("/customer/{id}/contactPerson/{contactPersonId}", "Customer\CustomerController@getContactPerson")->name("customer.contactPerson.get");
    Route::put("/customer/{id}/contactPerson/{contactPersonId}", "Customer\CustomerController@updateContactPerson")->name("customer.contactPerson.update");
    Route::post("/customers/{id}/loadCustomerAddresses", "Customer\CustomerController@loadCustomerAddresses")->name("customer.customerAddress.all");
    Route::post("/customers/{id}/CustomerPayment/save", "Customer\CustomerController@saveCustomerPayment")->name("customer.customerPayment.save");
    Route::post("/customers/{id}/customerAddress", "Customer\CustomerController@createCustomerAddress")->name("customer.customerAddress.create");
    Route::get("/customers/{id}/deleteCustomerAddress/{addressId}", "Customer\CustomerController@deleteCustomerAddress")->name("customer.customerAddress.delete");
    Route::get("/customers/{id}/deleteContactPerson/{contactPersonId}", "Customer\CustomerController@deleteContactPerson")->name("customer.contactPerson.delete");

1 Ответ

1 голос
/ 02 апреля 2020

Ваши первые два маршрута имеют одинаковую схему. Диспетчер маршрутов Laravel запускает первый соответствующий маршрут, поэтому при посещении /customers/alla он фактически запускает /customers/{id} с $id = "alla". Нет клиентов с идентификатором, равным "alla", верно?

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