Нечетные маршруты Laravel apiResource - PullRequest
0 голосов
/ 30 сентября 2019

маршрут для моей функции показа в apiResource не работает, но если я перегружу маршрут и укажу на функцию, она будет работать как положено.

ресурсный маршрут не работает

Route::apiResource('/delivery_handler/chat/','CartDeliveryListChatController');

рабочий маршрут

Route::get('/delivery_handler/chat/{id?}', function ($id) {
        return (new App\Http\Controllers\Api\CartDeliveryListChatController)->show($id);
    });

в моем контроллере

    /**
     * @param $chatId
     * @return CartDeliveryListChatResource
     */
    public function show($chatId): CartDeliveryListChatResource
    {
        $data = CartDeliveryListChat::where('id',$chatId)->first();
        return new CartDeliveryListChatResource($data);
    }

список маршрутов

  | GET|HEAD  | api/v1/delivery_handler/chat/{id?}                  |                                   | Closure                                                                             | api          |
|        | GET|HEAD  | api/v1/delivery_handler/chat/{}                     | show                              | App\Http\Controllers\Api\CartDeliveryListChatController@show                        | api          |

1 Ответ

0 голосов
/ 30 сентября 2019

Хорошо, я думаю, что проблема в пространстве имен. Я думаю, что вам не хватает части API в определении маршрута ресурса. Ваш контроллер находится в каталоге App\Http\Controllers\Api, но если вы просто определите CartDeliveryListChatController, Laravel будет искать только в каталоге App\Http\Controllers.

Попробуйте выполнить следующее:

Route::apiResource('/delivery_handler/chat/','Api\CartDeliveryListChatController');

Также яНе знаю, можете ли вы указать путь в качестве первого параметра метода ресурса. Я думал, что это всегда должно быть имя объекта (для которого вы создаете ресурс). Но я не уверен в этом. Если это все еще не работает, попробуйте это вместо:

Route::apiResource('cartdeliverylistchat','Api\CartDeliveryListChatController');

И маршрут http://YOURAPPLICATION/cartdeliverylistchat/YOURID

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