首页 > 解决方案 > 从博客文章标题制作网址。Laravel

问题描述

我是 laravel 的初学者,正在开发一个博客网站。制作博客标题链接的最方便的方法是什么,它将引导用户访问博客本身。

标签: laravel

解决方案


对于您的每篇博客文章,除了标题之外,还要创建另一列slug,当您存储博客文章时,也将其 slugify 并存储。然后您可以在查询和路由变量中使用它。

脚步:

在您的迁移中添加slug

$table->string('slug')->unique();

将其放入您的模型中,当您存储模型时,这将自动使标题变为 slug。

use Illuminate\Support\Str;
public static function boot()
{
    parent::boot();
    self::creating(function($model){
        $model->slug = Str::slug($model->title, '-');
    });
}

然后在您的博客文章中访问路由:

Route::get('/posts/{slug_title}', 'PostController@show')->name('posts.show');

最后在您的控制器/动作中:

public function show($slug_title)
{
    $post = Post::query()
        ->where('slug', $slug_title)
        ->first();
    
    return $post; 
}

推荐阅读