手枪88 / yii2-field
yii2-field 向您的模型添加字段
dev-master
2017-04-24 05:56 UTC
Requires
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-27 21:25:23 UTC
README
从 2017 年 4 月 24 日起,模块开发在这里进行:[dvizh/yii2-field](https://github.com/dvizh/yii2-field)。建议从 Dvizh 的存储库安装模块,因为那里有最新版本。
Yii2-field
使用此模块可以通过网页界面向某个模型添加字段,然后根据值进行查询。
目前支持的字段类型
- 文本
- 数字
- 日期
- 文本区域
- 选择
- 单选按钮
- 复选框
- 图片(开发中)
对于选择、单选按钮、复选框,可以在设置中预先定义选项。
安装
执行以下命令
php composer require pistol88/yii2-field "*"
或在 composer.json 中添加
"pistol88/yii2-field": "*",
然后执行
php composer update
接下来,迁移数据库
php yii migrate --migrationPath=vendor/pistol88/yii2-field/migrations
连接和设置
将模块 field 添加到应用程序配置文件中,并进行配置
'modules' => [ //... 'field' => [ 'class' => 'pistol88\field\Module', 'relationModels' => [ 'common\models\User' => 'Пользователи', 'pistol88\shop\models\Product' => 'Продукты', ], 'adminRoles' => ['administrator'], ], //... ]
- relationModels - 可以附加字段的模型列表
所有可用的 CRUD 用于管理字段:?r=field/default/index
为将使用字段的模型添加行为
function behaviors() { return [ 'field' => [ 'class' => 'pistol88\field\behaviors\AttachFields', ], ]; }
为了能够过滤 Find 的结果,我们替换模型中的 Query
public static function Find() { $return = new ProductQuery(get_called_class()); return $return; }
在 ProductQuery 中应该有此行为
function behaviors() { return [ 'field' => [ 'class' => 'pistol88\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
小部件
选择模型字段值的块(在管理后台,在编辑表单旁边插入)
<?=\pistol88\field\widgets\Choice::widget(['model' => $model]);?>
输出模型的所有字段及其值
$model]);?>