📅  最后修改于: 2023-12-03 15:17:15.266000             🧑  作者: Mango
在Laravel框架中,轻松地创建SEO友好的URL非常简单。Laravel为我们提供了一个Slug类,可以很方便地将URL中的非法字符(如空格)替换为另一个字符(如短划线)。在这篇文章中,我们将探讨如何使用Laravel 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 Str::slug
帮助方法,将字符串变为Slug。
use Illuminate\Support\Str;
$slug = Str::slug('Laravel 显示 slug 发布的类别 - PHP', '-');
echo $slug;
// Output: "laravel-显示-slug-发布的类别-php"
在上面的代码片段中,Str::slug()
方法接受两个参数:要处理的字符串
和Slug的分隔符
。在这个例子中,我们使用了短划线作为分隔符。
现在,我们将展示如何将Slug添加到发布的类别中。
我们将使用Laravel的Eloquent ORM来创建一个类别模型,包含name
和slug
两个属性。
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。