gintonicweb/multiselect

根据一组条件切换、选择或多选数据库字段

安装: 113

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 3

分支: 4

类型:cakephp-plugin

0.0.1 2015-11-27 09:44 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:20:25 UTC


README

Build Status Coverage Total Downloads License

根据一组条件切换、选择或多选数据库字段

安装

使用 Composer

composer require muffin/multiselect:1.0.x-dev

然后您需要加载插件。您可以使用以下shell命令

bin/cake plugin load Muffin/Multiselect

或者手动将以下语句添加到您的应用的 config/bootstrap.php

Plugin::load('Muffin/Multiselect');

用法

在播放列表中,一次只能播放一首歌曲。每当一首歌曲被标记为正在播放时,其他所有歌曲都会被标记为未播放。为此,我们使用布尔字段 playing

CREATE table songs(
    id int(10) unsigned NOT NULL auto_increment,
    title varchar(255) NOT NULL,
    playing tinyint(1) NOT NULL,
);

在您的模型 SongsTable.php 中加载行为

$this->addBehavior('Multiselect.Multiselect', ['playing']);

可以处理更复杂的用例,例如以下情况。对于同一作者,一次只能标记两篇文章为 featured。当第三篇文章被标记为特色时,三篇文章中的一篇将被取消特色。在这种情况下,按最少观看次数和修改日期排序。

$this->addBehavior('Multiselect.Multiselect', [
    'featured' => [
        'state' => true, 
        'scope' => ['author_id'],
        'limit' => 2,
        'order' => [
            'view_count' => 'ASC',
            'modified' => 'ASC',
        ],
    ],
]);

配置

  • [字段名] 作为选择使用的字段名
  • state 将活动字段标记为 truefalse
  • scope 可以按这里定义的字段对选择进行分组
  • limit 最大选择元素数
  • order 超过限制时取消选择字段的顺序

补丁 & 功能

  • 分支
  • 修改、修复
  • 测试 - 这很重要,所以不要无意中破坏它
  • 提交 - 不要修改许可证、todo、版本等。(如果您更改了任何内容,请将其放入自己的提交中,这样我在拉取时可以忽略它们)
  • 拉取请求 - 主题分支将获得额外加分

为了确保您的PR被上游考虑,您必须遵循 CakePHP编码规范

错误 & 反馈

http://github.com/usemuffin/multiselect/issues

许可证

版权所有 (c) 2015, Use Muffin,并许可在 MIT许可证 下。