matteoggl/linnaeus

一个用于从动物名称和形容词创建可读性强的随机slug的Eloquent模型的包。

1.1.0 2020-08-28 08:13 UTC

This package is auto-updated.

Last update: 2024-09-15 21:26:36 UTC


README

GitHub Packagist Downloads

一个用于从动物名称和形容词创建可读性强的随机slug的Eloquent模型的包。

安装

只需要通过composer要求这个包

composer require matteoggl/linnaeus

用法

在Eloquent模型上添加HasSlug特性,并在其表上插入一个名为slug的列,类型为string,并带有unique修饰符。

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

默认情况下,新创建的模型将分配一个唯一的字符串,该字符串由900个形容词、100多种颜色和250多种动物组合而成,其结构如下:形容词-形容词-动物

更新时,slug不会改变,如果为软删除,则模型的slug将被视为已使用。

slug与Laravel的隐式路由模型绑定一起使用。例如,以下代码

Route::get('/users/{user}', function (App\User $user) {
    return $user->email;
});

将使用Linnaeus的slug(例如/users/moldy-encouraging-turtle)。

配置

要发布配置文件,运行以下命令

php artisan vendor:publish --provider="MatteoGgl\Linnaeus\LinnaeusServiceProvider" --tag="config"

配置文件linnaeus.php将出现在您的config/目录中。

按模型配置

某些选项可以通过在模型构造函数内部更新它们来覆盖,使用流畅的API;以下是一个使用所有可用选项的示例

public function __construct(array $attributes = [])
    {
        parent::__construct($attributes);
        $this->linnaeus = LinnaeusOptions::create()
            ->withKey('linnaeus_slug')
            ->withStructure(['color', 'animal'])
            ->withSeparator('_')
            ->generatesOnUpdate()
            ->withInvalidAnimals(['aardvark'])
            ->withInvalidAdjectives(['zany'])
            ->withInvalidColors(['blue']);
    }

常见问题解答

问题:这个名字是什么意思?

答案:在维基百科上查看Carl Linnaeus

问题:这个包能做功能吗?

答案:我创建这个包是为了满足个人项目的一个需求。如果您有任何建议,请随时打开一个issue或PR!此外,这个包受到了spatie/laravel-sluggable的很大启发;也许您需要的功能就在那里。