Laravel БД запросить пост с URL get - PullRequest
0 голосов
/ 22 апреля 2020

как можно запросить один пост в laravel с помощью url get?

пример: http://localhost/lara/post/testpost

здесь, (testpost) мой заголовок сообщения в базе данных и я хочу показать эту информацию в одном файле, как это сделать?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Решение, предоставленное Тимом, является отличным решением, и его следует использовать, но если вы хотите внести некоторые изменения в свои данные перед рендерингом, вы также можете использовать эту опцию. Примечание: я пропустил часть модели, чтобы упростить объяснение.

Route::get('post/{slug}', 'PostsController@getSinglePost')->name('single-post');

Тогда в вашем контроллере вы можете сделать это:

public function getSinglePost($slug){
   // use your DB query here using the slug into $post_data
   return view('single-post')->with('post_data',$post_data);
}

Использование слага в посте - хорошая практика , но чтобы сохранить логику генерации слагов c немного чище, я бы порекомендовал иметь структуру вроде

http://example.com/<post_id>/<post_title_slug>

Это поможет вам различать посты, даже если слаг будет одинаковым [Случайно]

Надеюсь, это поможет.

0 голосов
/ 22 апреля 2020

Для этого вы можете использовать неявную привязку, она автоматически запросит вашу модель поста, если сопоставить последний сегмент маршрута. Часть: slug просто говорит ему искать столбец «slug» в вашем сообщении вместо идентификатора.

<?php
// routes/web.php

Route::get('post/{post:slug}', function (App\Post $post) {
    return $post;
});

Что вам нужно сделать, это сохранить URL-версию имени вашего сообщения в новом столбце под названием "slug", Laravel на самом деле имеет вспомогательную функцию для этого под названием str_slug , которую вы можете найти здесь https://laravel.com/docs/7.x/helpers#method -str-slug

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