codiverum / yii2-relation-search-filter
一个简单的扩展,用于简化通过相关字段进行搜索和过滤。
1.0.7
2015-10-20 08:03 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-14 18:52:49 UTC
README
一个简单的扩展,用于简化通过相关字段进行搜索和过滤。
使用此特性可以轻松添加显示/过滤相关实体属性的功能。它还允许使用表别名。扩展非常简单,但可以使代码更整洁,尤其是在使用别名时(一些IDE中存在一些自动格式化错误)。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令:
php composer.phar require --prefer-dist codiverum/yii2-relation-search-filter "*"
或者将以下内容添加到您的 composer.json
文件的 require 部分中:
"codiverum/yii2-relation-search-filter": "*"
使用
用法
要使用此特性,您需要进行以下操作(以下示例未使用别名):
- 在您的类(搜索模型)主体顶部添加以下内容:
use \codiverum\relationSF\RelationSFTrait;
- 在您的类中创建新的公共属性
public $relation_name;
- 将您的属性添加到安全属性中
- 在您的搜索函数中添加以下内容:
- 在创建 $query 后添加以下内容:
$this->joinWithRelation($query, 'relation_name');
- 在创建 $dataProvider 后添加以下内容:
$this->addRelationSort($dataProvider, 'relation_name', 'related_table_field_name', 'table_name');
- 在创建查询过滤器后添加以下内容:
$this->addRelationFilter($query, 'relation_name', 'related_table_field_name', 'table_name');
- 将以下内容添加到 GridView 列表数组中
[
'attribute' => 'relation_name',
'value' => 'relation_name.related_table_field_name',
],
完成。
高级用法(使用表别名)
- 在您的类(搜索模型)主体顶部添加以下内容:
use \codiverum\relationSF\RelationSFTrait;
- 在您的类中创建新的公共属性
public $relation_name;
- 将您的属性添加到安全属性中
- 在您的搜索函数中添加以下内容:
- 在创建 $query 后添加以下内容:
$this->joinWithRelation($query, 'relation_name', 'table_name', 'alias');
- 在创建 $dataProvider 后添加以下内容:
$this->addRelationSort($dataProvider, 'relation_name', 'related_table_field_name', 'alias');
- 在创建查询过滤器后添加以下内容:
$this->addRelationFilter($query, 'relation_name', 'related_table_field_name', 'alias');
- 将以下内容添加到 GridView 列表数组中
[
'attribute' => 'relation_name',
'value' => 'relation_name.related_table_field_name',
],
That's it.