naabster/laravel-eloquent-hashids

自动为 Laravel 中的新 Eloquent 模型生成 hashids。

1.0.4 2017-04-25 10:23 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:12:42 UTC


README

Laravel 5 Eloquent 模型特性,用于自动生成并持久化保存Hashids
使用@vinkla的 Laravel 5 Hashids 包。

Latest Stable Version License

安装

使用 Composer 在项目的根目录中要求此包。

composer require naabster/laravel-eloquent-hashids:~1.0

您应该首先根据其安装说明安装@vinkla的 Laravel 5 Hashids 包。

使用

在您的模型上使用 EloquentHashids 特性

use Illuminate\Database\Eloquent\Model;
use Naabster\EloquentHashids\EloquentHashids;

class Book extends Model
{

  use EloquentHashids;

  // Rest of your eloquent model
}

配置

默认使用以下配置

Hashids 连接

默认的 Hashids 连接是 table.<tablename>,例如,对于 Book 模型,它将是 table.books。您可以使用 static::getHashidConnection() 为您的模型设置不同的连接。

use Illuminate\Database\Eloquent\Model;
use Naabster\EloquentHashids\EloquentHashids;

class Book extends Model
{

  use EloquentHashids;

  public static function getHashidConnection(Model $model)
	{
	  return 'someconnection';
	}
}

确保您在 config/hashids.php 配置文件中设置了您的连接(由 @vinkla 的 Laravel 5 Hashids 包提供)!

列名

默认情况下,Hashid 列名为 uid。您可以使用 static::getHashidColumn() 为您的模型设置不同的列名。

use Illuminate\Database\Eloquent\Model;
use Naabster\EloquentHashids\EloquentHashids;

class Book extends Model
{

  use EloquentHashids;

  public static function getHashidColumn(Model $model)
	{
	  return 'hashid';
	}
}

注意

此包为新的模型生成 Hashids 并将其保存到数据库表中的列!要执行此操作,此列必须存在于您的表中。
您应该在模型中添加此列,使用 数据库迁移

编码值

默认情况下,您的 Hashid 的值/数字是模型的 primary Key 属性(默认为 id)。您可以根据需要调整此值,只需确保它与 Hashids 兼容。只需从 static::getHashidEncodingValue() 返回另一个值即可。

use Illuminate\Database\Eloquent\Model;
use Naabster\EloquentHashids\EloquentHashids;

class Book extends Model
{

  use EloquentHashids;

  public static function getHashidEncodingValue(Model $model)
	{
	  return $model->myId;
	}
}

示例

在此示例中,我们使用连接 bookHashids、列 hashid 和编码值 数组 生成 Hashids

use Illuminate\Database\Eloquent\Model;
use Naabster\EloquentHashids\EloquentHashids;

class Book extends Model
{

  use EloquentHashids;

  public static function getHashidConnection(Model $model)
	{
	  return 'bookHashids';
	}
	
  public static function getHashidColumn(Model $model)
	{
	  return 'hashid';
	}

  public static function getHashidEncodingValue(Model $model)
	{
	  return [$model->id, $model->foreign_key];
	}
}

许可证

Laravel 5 Eloquent Hashids 包是开源软件,根据MIT 许可证授权。