zaimealabs/sluggable

ZaimeaLabs Sluggable 包。

1.0 2024-06-26 13:15 UTC

This package is auto-updated.

Last update: 2024-09-27 12:37:55 UTC


README

Sluggable

为您的模型生成自动化的slug。

Sluggable Tests License

嗨 👋 感谢您考虑捐款,有了这些捐款,我可以继续为ZaimeaLabs项目做出贡献。

Donate

用法

namespace App;

use ZaimeaLabs\Sluggable\HasSlug;
use ZaimeaLabs\Sluggable\SlugOptions;
use Illuminate\Database\Eloquent\Model;

class EloquentModel extends Model
{
    use HasSlug;

    /**
     * Create a new options for generating the slug.
     *
     * @return \ZaimeaLabs\Sluggable\SlugOptions
     */
    public function newSlugOptions() : SlugOptions
    {
        return SlugOptions::create()
            ->generateSlugsFrom('name')
            ->saveSlugsTo('slug');
    }
}

与路由一起使用

/**
 * Get the route key for the model.
 */
public function getRouteKeyName(): string
{
    return 'slug';
}

slug选项

->generateSlugsFrom(['field', 'field_2'])
->saveSlugsTo('slug');
->allowDuplicateSlugs();
->slugsShouldBeNoLongerThan(50);
->usingSeparator('_');
->doNotGenerateSlugsOnCreate();
->doNotGenerateSlugsOnUpdate();
->preventOverwrite();
->startSlugSuffixFrom(2);

通过slug查找模型

为了方便,您可以使用别名findBySlug来检索一个模型。查询将比较在定义SlugOptions时传递给saveSlugsTo的字段。

$model = Article::findBySlug('my-article');

findBySlug还接受一个名为$columns的第二个参数,就像默认的Eloquent find方法。