mazurva / yii2-eav
为Yii2的EAV
v0.5.0
2015-09-23 19:21 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-29 04:25:24 UTC
README
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一:
php composer.phar require --prefer-dist mazurva/yii2-eav "dev-master"
或者在您的composer.json
文件的require部分添加以下内容:
"mazurva/yii2-eav": "dev-master"
php yii migrate/up --migrationPath=@vendor/mazurva/yii2-eav/src/migrations
使用方法
附加到您的模型
use EavTrait; // need for full support label of fields public function behaviors() { return [ 'eav' => [ 'class' => mazurva\eav\EavBehavior::className(), 'valueClass' => mazurva\eav\models\EavAttributeValue::className(), // this model for table object_attribute_value ] ]; } /** * @return \yii\db\ActiveQuery */ public function getEavAttributes() { return $this->hasMany(mazurva\eav\models\EavAttribute::className(), ['categoryId' => 'id']); }
视图中的示例使用
<?=$form->field($model,'eav2'); ?>
或
foreach($model->eavAttributes as $attr){ echo $form->field($model, $attr->name)->textInput(); }
添加新字段
$attr = new mazurva\eav\models\EavAttribute(); $attr->attributes = [ 'categoryId' => 1, // Category ID 'name' => 'AttrCategory1', // service name field 'label' => 'Attr1', // label text for form 'defaultValue' => 'attr1', // default value 'entityModel' => SampleModel::className(), // work model 'required'=>false // add rule "required field" ]; $attr->save();