dvizh / yii2-field
yii2-field 为您的模型添加字段
dev-master
2018-02-19 09:52 UTC
Requires
- php: >=5.4.0
- 2amigos/yii2-grid-view-library: *
- asofter/yii2-imperavi-redactor: dev-master@dev
- 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 not auto-updated.
Last update: 2024-09-15 02:43:20 UTC
README
使用本模块,您可以通过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
小部件
选择模型字段的值块(在后台插入,在编辑表单旁边)
<?=\dvizh\field\widgets\Choice::widget(['model' => $model]);?>
输出模型的所有字段及其值
<?=dvizh\field\widgets\Show::widget(['model' => $model]);?>