pawelmysior/laravel-sluggable

一个小特性,cviebrock/eloquent-sluggable的包装器

7.0.0 2020-03-24 08:58 UTC

This package is auto-updated.

Last update: 2024-09-24 18:03:02 UTC


README

这是一个非常小的特性。它是对cviebrock/eloquent-sluggable的优雅包装。

它定义了一个默认的slug源属性(title)并为根据slug查找模型添加了一个作用域。

安装

您可以通过composer安装此包

composer require pawelmysior/laravel-sluggable

准备

在模型上使用特性

<?php
 
namespace App;
  
use Illuminate\Database\Eloquent\Model;
use PawelMysior\Sluggable\Sluggable;
 
class Post extends Model
{
    use Sluggable;
}

默认情况下,slug是从title属性创建的,但您可以通过覆盖模型上特性的getSlugSourceAttribute()方法轻松更改它,如下所示

<?php
 
namespace App;
  
use Illuminate\Database\Eloquent\Model;
use PawelMysior\Sluggable\Sluggable;
 
class Post extends Model
{
    use Sluggable;

    protected function getSlugSourceAttribute(): string
    {
        return $this->name;
    }
}

用法

现在将创建slug。特性中还定义了一个作用域,允许您通过slug查找帖子

Post::findBySlug('slug');

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件