halfpetal/laravel-identifiable

为 Laravel 模型创建标识符的简单方法。

此包的官方仓库似乎已不存在,因此该包已被冻结。

v1.0.1 2018-02-10 07:37 UTC

This package is auto-updated.

Last update: 2023-04-29 00:38:25 UTC


README

Build Status Total Downloads Latest Stable Version License

支持的版本

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 或其他,它将正常工作。