jeffersonsimaogoncalves / nova-sluggable
Laravel Nova 的缩略字段
Requires
- php: >=7.1.0
- illuminate/http: 5.6.*|5.7.*|5.8.*|6.*|7.*|8.*|9.*
- illuminate/support: 5.6.*|5.7.*|5.8.*|6.*|7.*|8.*|9.*
This package is auto-updated.
Last update: 2024-09-22 21:44:40 UTC
README
Laravel Nova 的缩略字段,可以在输入时生成唯一的缩略字段。
安装
您可以使用 composer 将此软件包安装到使用 Nova 的 Laravel 应用中
composer require jeffersonsimaogoncalves/nova-sluggable
用法
向您的 Nova 资源中添加一个新字段 SluggableText
和一个 Slug
字段
use Drobee\NovaSluggable\SluggableText; use Drobee\NovaSluggable\Slug; class User extends Resource { // ... public function fields(Request $request) { return [ // ... SluggableText::make('Title'), Slug::make('Slug'), // ... ]; } }
当用户在 SluggableText
字段中输入字符串时,该值将被发送到 API 生成缩略字段,然后将其设置为 Slug
字段的值。缩略字段在每个 key up
事件时更新,但也可以将其与标题字段的 blur
事件相关联。
默认情况下,它会查找名为 Slug 的 Slug
类型字段。
为了正常工作,每个定义的 SluggableText
字段都需要一个对应的 Slug
字段。
选项
具有自定义名称的缩略字段
使用 slug()
方法在 SluggableText
字段上设置 Slug
字段的名称
SluggableText::make('Title')->slug('SEO Title'); Slug::make('SEO Title', 'slug');
语言
使用 Slug
字段的 slugLanguage()
方法设置用于生成的语言
Slug::make('Slug')->slugLanguage('hu');
默认值: en
最大长度
使用 Slug
字段的 slugMaxLength()
方法限制生成的缩略字段的最大长度
Slug::make('Slug')->slugMaxLength(100);
默认值: 255
最大长度
使用 Slug
字段的 slugSeparator()
方法设置所有空格将被替换的字符串
Slug::make('Slug')->slugSeparator('.');
默认值: -
注意:由于添加了后缀以使其唯一,生成的缩略字段可能比指定的值长几个字符。
更新事件
默认情况下,缩略字段在每个 keyup
事件时更新,但您可以将它绑定到 blur
事件
Slug::make('Slug')->event('blur');
接受值: keyup
、blur
默认值: keyup
唯一缩略字段和 Eloquent 模型
除非您在 Slug
字段上调用 slugUnique()
方法,否则生成的缩略字段不会是唯一的。
您还需要指定生成器应使用哪个 Eloquent 模型来使缩略字段唯一,通过调用 slugModel()
方法。在大多数情况下,您希望使用与资源相同的 Eloquent 模型。为此,请使用资源的静态 $model
属性调用该方法。
Slug::make('Slug') ->slugUnique() ->slugModel(static::$model);
当这些选项设置后,生成的缩略字段将在设置的模型中相对于 Slug
字段的属性值唯一。
与 Spatie\Sluggable 一起使用
如果指定的 Eloquent 模型使用 Spatie\Sluggable
的 HasSlug
特性并实现了其 getSlugOptions()
方法,则不需要设置字段的分隔符、最大长度或语言。在这种情况下,生成器使用您已在模型上设置的值。
更新日志
有关最近更改的更多信息,请参阅 更新日志
安全
如果您发现任何安全问题,请通过电子邮件 robi@dpb.hu 而不是使用问题跟踪器
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件
感谢
特别感谢
https://github.com/TheNerka/nova-sluggable/ https://github.com/drobee/nova-sluggable/