Laravel Eloquent Sequencer
このパッケージは、Eloquentモデルのシーケンスを作成および管理することを可能にします。
インストール
Composer経由でパッケージをインストールします:
composer require gurgentil/laravel-eloquent-sequencer設定
設定ファイルを公開するには、次のコマンドを実行してください:
php artisan vendor:publish --provider="Gurgentil\LaravelEloquentSequencer\LaravelEloquentSequencerServiceProvider"設定パラメータ
デフォルトのカラム名、初期値、シーケンス戦略は config/eloquentsequencer.php で変更できます:
return [
'column_name' => 'position',
'initial_value' => 1,
'strategy' => 'always',
];strategy設定は、シーケンシングをいつトリガーするかを決定し、次のいずれかの値を受け入れます:always、on_create、on_update、またはnever。
モデル設定
$sequenceable属性は、モデルのシーケンスカラム名を指定します:
protected static $sequenceable = 'order';
シーケンスアイテムをグループ化する関係キー:protected static $sequenceableKeys = [
'task_list_id',
];上記の例では、タスクリストには多くのタスクがあります。
多態的関係の場合は、両方の関係キーを指定してください:
protected static $sequenceableKeys = [
'commentable_id',
'commentable_type',
];使用法
以下の例では、タスクリストに多数のタスクが含まれる場合があります。
`` php
use Gurgentil\LaravelEloquentSequencer\Traits\Sequenceable;
use Illuminate\Database\Eloquent\Model;
class Task extends Model { use Sequenceable;
protected $fillable = [ 'position', ]; protected static $sequenceableKeys = [ 'task_list_id', ];
public function taskList() { return $this->belongsTo(TaskList::class); } }
オブジェクトを作成する
php
Task::create([
'position' => 1,
'task_list_id' => 1,
]);
sequence 属性に値が指定されていない場合、オブジェクトはシーケンスの最後に配置されます。
php
Task::create(['task_list_id' => 1]);
オブジェクトの更新と削除
シーケンス内の他の項目は、シーケンスの整合性を保つために再配置されます。
php
$task->update(['position' => 4]);
php
$task->delete();
オブジェクトのシーケンス値を取得する
php
$value = $task->getSequenceValue();
シーケンス列名を取得する
php
$columnName = Task::getSequenceColumnName();
自動シーケンスの無効化
php
$task->withoutSequencing()->update(['position' => 3]);
php
$task->withoutSequencing()->delete();
シーケンス値で結果を並べ替えるスコープクエリ
php
$tasks = Task::sequenced()->get();
bash php artisan sequence:populate \\App\\TasknullArtisanコマンド
値が
に設定されているすべてのレコードにシーケンス値を割り当てます。
モデルのすべてのシーケンス値をフラッシュします。
bash
php artisan sequence:flush \\App\\Task
テスト
bash
composer test
``
変更履歴
最近の変更内容の詳細については、CHANGELOG をご覧ください。
コントリビューション
詳細については、CONTRIBUTING をご覧ください。
セキュリティ
セキュリティに関する問題を発見した場合は、Issueトラッカーの代わりに gustavorgentil@outlook.com までメールでご連絡ください。
クレジット
ライセンス
MITライセンス (MIT)。詳細については License File をご覧ください。
Laravel パッケージ ボイラープレート
このパッケージは Laravel Package Boilerplate を使用して生成されました。
--- Tranlated By Open Ai Tx | Last indexed: 2026-01-05 ---