matteoggl / linnaeus
一个用于从动物名称和形容词创建可读性强的随机slug的Eloquent模型的包。
1.1.0
2020-08-28 08:13 UTC
Requires
- php: >=7.4
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^9.3
This package is auto-updated.
Last update: 2024-09-15 21:26:36 UTC
README
一个用于从动物名称和形容词创建可读性强的随机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的很大启发;也许您需要的功能就在那里。