Package Data | |
---|---|
Maintainer Username: | naabster |
Maintainer Contact: | naabster@gmail.com (Michael Naab) |
Package Create Date: | 2015-04-29 |
Package Last Update: | 2017-04-25 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-18 03:03:05 |
Package Statistics | |
---|---|
Total Downloads: | 7,045 |
Monthly Downloads: | 1 |
Daily Downloads: | 0 |
Total Stars: | 16 |
Total Watchers: | 1 |
Total Forks: | 5 |
Total Open Issues: | 2 |
Laravel 5 Eloquent Model trait for automatically generating and persistently saving Hashids for new models.
Uses @vinkla's Laravel 5 Hashids package.
Require this package, with Composer, in the root directory of your project.
composer require naabster/laravel-eloquent-hashids:~1.0
You should first install @vinkla's Laravel 5 Hashids package according to their installation instructions.
Use the EloquentHashids
trait on your model:
use Illuminate\Database\Eloquent\Model;
use Naabster\EloquentHashids\EloquentHashids;
class Book extends Model
{
use EloquentHashids;
// Rest of your eloquent model
}
By default the following configuration is used:
The default Hashids Connection is table.<tablename>
, so for example for the Book
model it would be table.books
.
You can set a different connection for your model with 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';
}
}
Make sure you set your connections in your config/hashids.php
config file (comes with @vinkla's Laravel 5 Hashids package)!
By default the Hashid column is named uid
. You can set a different column name for your model with 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';
}
}
Attention
This package generates Hashids for new models and saves them to a column in your database table! To be able to do that, this column must exist in your table.
You should add this column to your model with a database migration.
By default the Value/Number for your Hashid is the primary Key
attribute of your model (defaults to id
). You can adjust that any way you
want, just make sure it is Hashids
compatible. Just return another value from 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;
}
}
In this example we generate Hashids
with the connection bookHashids, for column hashid and with an encoding
value of an array:
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];
}
}
The Laravel 5 Eloquent Hashids package is open-sourced software licensed under the MIT license.