necrox87 / yii2-custom-field
yii2-custom-field 向您的模型添加字段
dev-master
2019-11-19 10:11 UTC
Requires
- php: >=5.4.0
- 2amigos/yii2-grid-view-library: *
- asofter/yii2-imperavi-redactor: ^0.0.3
- kartik-v/yii2-grid: *
- kartik-v/yii2-widget-select2: *
- yiisoft/yii2: *
- yiisoft/yii2-bootstrap: *
- zelenin/yii2-slug-behavior: ~1.5.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-19 20:33:39 UTC
README
基于dvizh/yii2-field包的分支
使用此模块可以通过Web界面为特定模型添加字段,然后根据值进行检索。
当前支持的字段类型
- 文本
- 数字
- 日期
- 多行文本
- 选择
- 单选按钮
- 复选框
- 图片(开发中)
对于选择、单选按钮和复选框,可以预先在设置中定义选项。
安装
执行以下命令
php composer require dvizh/yii2-field "@dev"
或在composer.json中添加
"dvizh/yii2-field": "@dev",
然后执行
php composer update
接下来,迁移数据库
php yii migrate --migrationPath=vendor/dvizh/yii2-field/src/migrations
连接和配置
在应用程序配置文件中添加模块field,并配置它
'modules' => [ //... 'field' => [ 'class' => 'dvizh\field\Module', 'relationModels' => [ 'common\models\User' => 'Пользователи', 'dvizh\shop\models\Product' => 'Продукты', ], 'adminRoles' => ['administrator'], ], //... ]
- relationModels - 可附加字段的模型列表
所有可用的CRUD操作来管理字段:?r=field/default/index
为将使用字段的模型添加行为
function behaviors() { return [ 'field' => [ 'class' => 'dvizh\field\behaviors\AttachFields', ], ]; }
为了能够过滤Find结果,我们替换模型中的Query
public static function Find() { $return = new ProductQuery(get_called_class()); return $return; }
在ProductQuery中应有此行为
function behaviors() { return [ 'field' => [ 'class' => 'dvizh\field\behaviors\Filtered', ], ]; }
使用
通过getField()方法调用字段的值,该方法接收字段代码。
echo $model->getField('field_name');
根据字段值选择所有记录
$productsFind = Product::find()->field('power', 100)->all(); //Все записи с power=100 $productsFind = Product::find()->field('power', 100, '>')->all(); //Все записи с power>100 $productsFind = Product::find()->field('power', 100, '<')->all(); //Все записи с power<100
小部件
用于选择模型 $model 字段值的块(在管理后台,在编辑表单旁边插入)
<?=\dvizh\field\widgets\Choice::widget(['model' => $model]);?>
输出模型的所有字段及其值
<?=dvizh\field\widgets\Show::widget(['model' => $model]);?>