mr-timofey/eloquent-sluggable

Sluggable Eloquent 模型类

0.1.2 2021-01-21 07:59 UTC

This package is auto-updated.

Last update: 2024-09-21 15:37:04 UTC


README

Eloquent 模型的短链接

功能

  • findBySlug, findBySlugOrFail, findByAny, findByAnyOrFail
  • 创建时自动生成短链接(如果没有手动设置)通过转换源属性
  • 每次修改短链接后自动检查唯一性约束(如果短链接不是唯一的,将会追加 -1/2/3/... 直到唯一)
  • 通过短链接或 ID 解析路由(假设 ID 字段是整数)
  • 几乎可以通过方法覆盖或类字段进行任何定制

要求

  • PHP 7.1
  • Eloquent 模型

安装

composer require mr-timofey/eloquent-sluggable

使用方法

只需在您的模型类中通过 MrTimofey\EloquentSluggable\Sluggable 特性即可。如果需要,请定义字段

class MyModel extends \Illuminate\Database\Eloquent\Model {
	use \MrTimofey\EloquentSluggable\Sluggable;

	/**
	 * @var string attribute name that used as a source for transliteration
	 */
	protected static $slugSource = 'name';

	/**
	 * @var string attribute name containing a slug itself
	 */
	protected static $slugField = 'slug';

	/**
	 * @var bool slug can be null
	 */
	protected static $slugNullable = false;
}

如果您需要更多定制,请查看特性的源代码。