admad/cakephp-sequence

CakePHP的序列插件,用于维护记录的有序列表

资助包维护!
ADmad

安装量: 356,944

依赖项: 7

建议者: 0

安全: 0

星标: 44

关注者: 4

分支: 16

开放问题: 0

类型:cakephp-plugin

4.0.0 2023-09-29 06:58 UTC

This package is auto-updated.

Last update: 2024-08-29 08:54:35 UTC


README

Build Status Coverage Total Downloads License

安装

使用composer将此插件安装到您的CakePHP应用程序中

composer require admad/cakephp-sequence

然后运行CLI命令来加载插件

./bin/cake plugin load ADmad/Sequence

工作原理

此插件提供的SequenceBehavior在添加、编辑(包括移动组)或删除记录时,在表记录的选定列中维护一个连续的整数序列(可选地进行分组)。

用法

为您的表添加SequenceBehavior即可

$this->addBehavior('ADmad/Sequence.Sequence');

您可以根据以下示例自定义各种选项

$this->addBehavior('ADmad/Sequence.Sequence', [
    'sequenceField' => 'position', // Field to use to store integer sequence. Default "position".
    'scope' => ['group_id'], // Array of field names to use for grouping records. Default [].
    'startAt' => 1, // Initial value for sequence. Default 1.
]);

现在,每当添加一条新记录时,其position字段将自动设置为当前序列中最大的值加一。

在编辑记录时,您可以设置位置为新的值,列表中其他记录的位置将自动更新以保持正确的顺序。

在查询表时,如果尚未设置排序子句,将自动添加一个排序子句来按位置字段排序。

方法

moveUp(\Cake\Datasource\EntityInterface $entity)

将记录向上移动一个位置

$modelObject->moveUp($entity);

moveDown(\Cake\Datasource\EntityInterface $entity)

将记录向下移动一个位置

$modelObject->moveDown($entity);

setOrder(array $record)

设置提供的记录列表的顺序。记录可以提供为实体数组或关联数组,如[['id' => 1], ['id' => 2]],或主键值数组如[1, 2]

致谢

感谢@neilcrookes,他为CakePHP 1.3编写的出色的Sequence Behavior启发了这个插件。