📜  laravel 显示 slug 发布的类别 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:15.266000             🧑  作者: Mango

Laravel 显示 Slug 发布的类别 - PHP

在Laravel框架中,轻松地创建SEO友好的URL非常简单。Laravel为我们提供了一个Slug类,可以很方便地将URL中的非法字符(如空格)替换为另一个字符(如短划线)。在这篇文章中,我们将探讨如何使用Laravel Slug类显示发布的类别。

什么是Slug?

Slug是一种用来表示字符串内容的URL格式。Slug通常是一个URL的最后一部分,通常包含与浏览器中页面相对应的词组。

示例:https://example.com/blog/brilliant-ways-to-use-php-for-web-development

上面的示例链接中,"brilliant-ways-to-use-php-for-web-development"就是一个Slug.

如何在Laravel中创建Slug?

可以使用以下代码片段,使用Laravel Str::slug帮助方法,将字符串变为Slug。

use Illuminate\Support\Str;

$slug = Str::slug('Laravel 显示 slug 发布的类别 - PHP', '-');

echo $slug;
// Output: "laravel-显示-slug-发布的类别-php"

在上面的代码片段中,Str::slug()方法接受两个参数:要处理的字符串Slug的分隔符。在这个例子中,我们使用了短划线作为分隔符。

将Slug添加到发布的类别中

现在,我们将展示如何将Slug添加到发布的类别中。

我们将使用Laravel的Eloquent ORM来创建一个类别模型,包含nameslug两个属性。

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;

class Category extends Model
{
    protected $fillable = ['name', 'slug'];

    public static function boot()
    {
        parent::boot();
        static::creating(function ($category) {
            $category->slug = Str::slug($category->name, '-');
        });
    }
}

在以上代码中,我们创建了一个Category模型,并在creating事件中设定模型的Slug属性。每次我们保存一个新的Category模型,并传入了一个Name属性时,我们就会为Slug属性创建相应的值。

接下来,我们将展示如何在视图中使用这个Slug。我们将在index.blade.php 视图中创建一个循环,来显示发布的类别:

@foreach($categories as $category)
    <a href="{{ url('/category/'.$category->slug) }}">{{ $category->name }}</a>
@endforeach

在以上blade代码中,我们在链接中传入了生成的Slug。在这个例子中,我们前往https://example.com/category/laravel-show-slug-publishing-category-php

结论

在这个简短的教程中,我们学习了如何使用Laravel Slug类创建一个SEO友好的URL,以及如何将Slug添加到发布的类别中。Laravel为我们提供了一个强大的字符串操作库,使我们可以很容易地转换和创建Slug,帮助我们创建优化的URL。