yeesoft / yii2-yee-eav
Yee CMS 的 EAV 模块
0.1.0
2017-03-01 11:36 UTC
Requires
- yeesoft/yii2-yee-core: ~0.1.0
This package is auto-updated.
Last update: 2022-03-29 00:34:57 UTC
README
Yii2 框架 - Yee CMS - EAV 模块
用于创建自定义字段的模块
此模块是 Yee CMS 的一部分。此模块允许您为模型创建和管理自定义字段。
安装
- 运行以下命令之一:
composer require --prefer-dist yeesoft/yii2-yee-eav "~0.1.0"
或
"yeesoft/yii2-yee-eav": "~0.1.0"
将以下内容添加到您的 composer.json
文件的 require 部分中。
- 运行迁移
yii migrate --migrationPath=@vendor/yeesoft/yii2-yee-eav/migrations/
配置
- 在您的后端配置文件中
'modules'=>[ 'eav' => [ 'class' => 'yeesoft\eav\EavModule', ], ],
模块的使用
- 模型必须实现 EavCategories 接口
class SomeModel extends ActiveRecord implements yeesoft\eav\models\EavCategories
- 实现所需的方法
public function getEavCategories() { return Category::getCategories(); } public static function getEavCategoryField() { return 'category_id'; }
- 将 EAV 行为添加到模型
public function behaviors() { return [ 'eav' => [ 'class' => \yeesoft\eav\EavBehavior::className(), ] ]; }
- 如果模型使用类别来区分属性,则在创建模型时应指定类别 ID
$model = new SomeModel(['category_id' => 7]);
- 将 EavQueryTrait 添加到 ModelQuery 类
use yeesoft\eav\EavQueryTrait;
- 向 ModelSearch 类添加过滤器
$query->andEavFilterWhere('=', 'customtext', Yii::$app->getRequest()->get('customtext'));
- 向表单视图添加字段
echo $form->field($model, 'customtext')->textInput(['maxlength' => true]); echo $form->field($model, 'customselect')->dropDownList($model->getEavAttribute('customselect')->getEavOptionsList());
- 在索引视图中向 GridView 添加列
GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ [ 'value' => function (SomeModel $model) { return (isset($model->input)) ? $model->input : '(not set)'; }, 'filter' => Html::input('text', 'customtext', Yii::$app->getRequest()->get('customtext'), ['class' => 'form-control']), ], ])