公式
概要
レコードの順番を管理するシンプルなプラグインです。
インストール
composerでインストール後、config/bootstrap.php
に 追加。
composer require admad/cakephp-sequence
config/bootstrap.php
Plugin::load('ADmad/Sequence');
使い方
以下をBehaviorの設定に追加。
Table.php
$this->addBehavior('ADmad/Sequence.Sequence', [
'order' => 'position', // 順番を保存するカラム名。デフォルト: "position".
'scope' => ['group_id'], // グルーピングに使うカラムの配列。 デフォルト [].
'start' => 1, // 順番の初期値。デフォルト 1.
]);
新しいレコードを保存する度に、'position' カラムに 1->2->3 と自動で順番が保存されます。
また、クエリのorder()が未指定の場合は、自動でorder('position asc')が追加されます。
保存、更新、削除時の動作
新規追加だけでなく、挿入や削除にも対応しています。
挿入や更新の場合は、position
に挿入、更新したい位置をセットしてsave()すれば、他のレコードのposition
も更新されます。
このため、大量のレコードがあるものには向かないのではないかと思われます。