josegonzalez / cakephp-simple-scope
一个简单的 cakephp 行为,用于限定查找范围。
Requires
This package is auto-updated.
Last update: 2024-08-29 04:03:20 UTC
README
cakephp-simple-scope
一个简单的 cakephp 行为,用于限定查找范围
背景
我不想写一大堆自定义查找,所以我定义了一个数组,并创建了一个行为来与该数组交互。是的。
需求
- CakePHP 2.x
安装
[使用 Composer]
将插件添加到项目的 composer.json
文件中 - 例如:
{
"require": {
"josegonzalez/cakephp-simple-scope": "dev-master"
}
}
因为这个插件在它自己的 composer.json
文件中设置了类型 cakephp-plugin
,所以 Composer 会知道在你的 /Plugins
目录中安装它,而不是在通常的 vendors 文件中。建议您将 /Plugins/SimpleScope
添加到您的 .gitignore 文件中。(为什么?阅读这里。)
[手动]
- 下载这个: https://github.com/josegonzalez/cakephp-simple-scope/zipball/master
- 解压下载内容。
- 将生成的文件夹复制到
app/Plugin
- 将您刚才复制的文件夹重命名为
SimpleScope
[GIT 子模块]
在您的应用目录中输入
git submodule add git://github.com/josegonzalez/cakephp-simple-scope.git Plugin/SimpleScope
git submodule init
git submodule update
[GIT Clone]
在您的插件目录中输入
git clone git://github.com/josegonzalez/cakephp-simple-scope.git SancSimpleScopetion
启用插件
在 2.0 中,您需要在 app/Config/bootstrap.php
文件中启用插件
CakePlugin::load('SimpleScope');
如果您已经使用了 CakePlugin::loadAll();
,则这不是必需的。
用法
将行为附加到您的 AppModel
<?php App::uses('Model', 'Model'); class AppModel extends Model { public $actsAs = array('SimpleScope.Scope'); } ?>
然后在您的模型中定义一些范围
<?php App::uses('AppModel', 'Model'); class User extends AppModel { public $scopes = array( 'active_admin' => array( 'name' => 'Active admin users', 'find' => array( 'type' => 'list', 'virtualFields' => array( 'fullname' => "CONCAT(User.firstname, ' ', User.lastname)" ), 'options' => array( 'fields' => array('User.id', 'User.fullname'), 'conditions' => array('User.role LIKE' => '%admin%'), 'order' => array('User.fullname'), ), ), ), ); } ?>
然后执行它
<?php $activeUsers = $this->User->scopedFind('active_admin'); ?>
您也可以将其用作自定义模型查找
<?php $activeUsers = $this->User->find('active_admin'); ?>
您还可以获取范围列表
<?php scopes = $this->User->scopes(); ?>
范围
- 需要 一个
name
字符串 - 可选 使用一个
find
数组
范围 find
字段
- 需要 一个
type
字符串 - 需要 一个
options
数组 - 可选 使用一个
virtualFields
字段
待办事项
- 单元测试
许可证
MIT 许可证 (MIT)
版权所有 (c) 2014 Jose Diaz-Gonzalez
特此授予任何获得本软件及其相关文档文件(“软件”)副本的任何人免费许可,用于在不加限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许向获得软件的人提供用于执行此操作的权利,但受以下条件的约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,没有任何形式的保证,明示或暗示,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论源于合同、侵权或其他原因,是否因软件或其使用或其他交易而产生。