API привязки модели Laravel 5.5 не работает - PullRequest
0 голосов
/ 09 июля 2019

У меня проблема с привязкой модели в Laravel 5.5.

У меня есть в моем api.php:

Route::group(['prefix'=>'tasks'], function() {
    Route::get('delete/{task}', 'TaskController@delete');

});

В моем контроллере:

public function delete(Request $request, Task $task){
        var_dump($task->id);

    }

В моем RouteServiceProvider:

public function boot()
{
    parent::boot();

    Route::model('task', 'App\Models\Task');
}

В моем приложении \ Http \ Kernel

'api' => [
                'throttle:60,1',
                'bindings',
            ],
    protected $routeMiddleware = [
            'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
            'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
            'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,

        ];

Но привязка модели не работает, мой дамп var возвращает ноль .

Если я пытаюсь удалить привязку модели в контроллере и использовать:

public function delete(Request $request, $id){
            var_dump(Task::find($id)->id);

        }

Это работает. в чем может быть проблема?

Ответы [ 3 ]

2 голосов
/ 09 июля 2019

Первая проверка: mapApiRoutes метод в routeServiceProvider.php и, если у него нет ->middleware('api'), добавьте в ваш метод.

Вы должны добавить api промежуточное программное обеспечение или api префикс к вашим маршрутам API.

Ссылка: Исходный код laravel

0 голосов
/ 09 июля 2019

Вы можете попытаться добавить связующее (или API) промежуточное ПО к вашим маршрутам:

Route::group(['prefix'=>'tasks'], function() {
    Route::get('delete/{task}', 'TaskController@delete');
})->middleware('bindings');
0 голосов
/ 09 июля 2019

Вы ничего не упомянули о наличии метода keyName в вашей модели задач.

Если у вас его нет, это, вероятно, проблема.

Добавьте это в вашу модель задачпереопределить метод по умолчанию:

public function getRouteKeyName()
{
    return 'id';
}

Редактировать: Я только что проверил это, и по умолчанию используется идентификатор.Извини, мой плохой.

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