Laravel 5.6 Resoure API-маршрут со слагом - PullRequest
0 голосов
/ 20 мая 2018

Я установил конечную точку json в Laravel 5.6, и я хочу использовать поле, отличное от идентификатора, например, slug, например, «/ category / my-slug».По умолчанию используется идентификатор, например, / Categories / 1

Маршрут

Route::resource('categories', 'CategoryController')->middleware('cors');

CategoryController

public function show(Category $category)
{
    CategoryResource::withoutWrapping();
    return new CategoryResource($category);
}

Категория Resource

public function toArray($request)
{
    return [
        'type'          => 'categories',
        'id'            => (string)$this->id,
        'attributes'    => [
            'title' => $this->title,
            'description' => $this->description,
            'status' => $this->status,
            'slug' => $this->slug,
        ]
    ];
}

1 Ответ

0 голосов
/ 21 мая 2018

В вашей Category модели добавьте это:

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

Это заставит привязку модели маршрута работать с слагом категории вместо id.Вы можете прочитать больше здесь https://laravel.com/docs/5.6/routing#route-model-binding

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