halfpetal / laravel-identifiable
为 Laravel 模型创建标识符的简单方法。
此包的官方仓库似乎已不存在,因此该包已被冻结。
v1.0.1
2018-02-10 07:37 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3.2
- doctrine/dbal: ^2.5
- fzaninotto/faker: ~1.4
- laravel/laravel: 5.*
- mockery/mockery: ^0.9.5
- phpunit/phpunit: 5.*
This package is auto-updated.
Last update: 2023-04-29 00:38:25 UTC
README
支持的版本
Laravel 版本 | 已测试 | 工作正常 |
---|---|---|
v5.6 | ✔️ | ✔️ |
v5.5 | ✔️ | ✔️ |
关于
Laravel Identifiable 是一个允许您将 Identifiable
特性添加到任何模型并为其创建唯一标识符的包。它还提供了与标识符系统的自动路由键绑定。
安装
composer require halfpetal/laravel-identifiable
如果您使用 Laravel 5.5+,则无需执行其他操作。如果不是,请将我们的服务提供者添加到 config/app.php
'providers' => [ ... Halfpetal\Laravel\Identifiable\IdentifiableServiceProdiver::class, ... ];
完成此操作后,只需发布迁移!
php artisan vendor:publish --provider="Halfpetal\Laravel\Identifiable\IdentifiableServiceProdiver" --tag="migrations"
然后根据需要迁移。
php artisan migrate
设置模型
很简单,只需将 Identifiable
特性添加到您想要使用标识符系统的模型中。
use Halfpetal\Laravel\Identifiable\Traits\Identifiable; class User extends Model { use Identifiable; ... }
如何使用
您不需要了解任何事情!它直接就可以使用。它现在将显示为模型生成的唯一标识符,而不是暴露模型的自定义标识符。
自定义/配置
标识符长度
如果您想设置不同的标识符长度,可以在您的模型中添加以下内容
protected static $idLength = 12; // This will generate identifiers with a length of 12 characters
禁用标识符自动生成
如果您出于某种奇怪的原因想要更多控制这个过程(如果您不生成标识符,则会破坏路由绑定功能),可以设置以下变量
protected static $idAutoGenerate = false;
这可以在某些情况下很有帮助,例如,您想允许自定义标识符;但请记住,每个标识符必须对模型是唯一的。
唯一标识符
每个标识符基于类型和值是唯一的。例如...您有一个评论和一个帖子都有相同的 slug...
值 | 类型 | |
---|---|---|
wow-amazing | App\Post | ✔️ |
wow-amazing | App\Comment | ✔️ |
wow-amazing | App\Post | ✖️ |
第三个失败,因为它不是对 App\Post
唯一的。然而,如果它是 say App\Video
或其他,它将正常工作。