Как использовать слаг для URL - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь использовать слагов как способ отображения ссылок в моем URL.Например, вместо использования:

http://localhost:8000/product/1

Я хочу использовать ...

http://localhost:8000/product/blue-shirts

Пока мне удалосьдобавить слагов через пакет cviebrock/eloquent-sluggable.Что я должен использовать для моего маршрута и вида?

<?php

use Sluggable;

public function sluggable()
{
    return [
        'slug' => [
            'source' => 'product_name'
        ]
    ];
}

1 Ответ

0 голосов
/ 03 февраля 2019

Вы можете настроить логику разрешения привязки модели маршрута в RouteServiceProvider:

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

    Route::bind('product', function ($value) {
        return Product::where('slug', $value)->first() ?? abort(404);
    });
}

См. документы здесь для получения дополнительной информации.

Или добавьтеследующее для вашей Product модели, чтобы использовать неявное связывание:

/**
 * Get the route key for the model.
 *
 * @return string
 */
public function getRouteKeyName()
{
    return 'slug';
}

Документы пакета объясняются здесь .

...