Laravel, создать новую ссылку автоматически - PullRequest
0 голосов
/ 19 июня 2020

Я создал проект laravel, и он включает 4 разных записи в блоге. Я хочу, чтобы каждая запись в блоге создавала свой собственный URL-адрес с использованием заголовка блога, например, / blog / {blog: id}, однако я не уверен, что буду делать это.

Route::get('/', function () {
    $links = \App\Link::paginate(2);

    return view('welcome', ['links' => $links]);
});

Route::get('/{links:id}', function (Links $links) {
    return $links;
});

1 Ответ

0 голосов
/ 19 июня 2020

Один из вариантов - создать ссылки из заголовка вашего блога.

//Blog model
function getUrl(){
    return $this->title; //Blog title
}

Таким образом, вы можете создавать ссылки напрямую, используя модель блога, вместо использования класса Link.

Затем при отображении ваш блог, вам нужно будет сделать что-то вроде этого, чтобы получить его по заголовку, а не по идентификатору блога:

$blog = Blog:where('title', $request->title)->first();

Этот параметр, возможно, придется изменить, поскольку у вас могут быть блоги с таким же заголовком. Если у вас такой же заголовок, вы также можете использовать идентификатор блога в getUrl (), чтобы иметь возможность найти правильный объект блога.

Другой вариант, который я бы предпочел, - это использовать один из этих пакеты, которые помогут вам с слагами:

https://github.com/spatie/laravel-sluggable

https://github.com/cviebrock/eloquent-sluggable

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