zaimealabs / sluggable
ZaimeaLabs Sluggable 包。
1.0
2024-06-26 13:15 UTC
Requires
- php: ^8.2
- illuminate/database: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
README
为您的模型生成自动化的slug。
嗨 👋 感谢您考虑捐款,有了这些捐款,我可以继续为ZaimeaLabs项目做出贡献。
用法
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
方法。