yeesoft/yii2-yee-eav

Yee CMS 的 EAV 模块

0.1.0 2017-03-01 11:36 UTC

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']),
    ],
])