rangelreale/ yii2-mdhaliasbehavior
使用 PHP MDH 进行模型属性别名化和格式转换的 Yii 行为
dev-master
2018-04-19 17:05 UTC
Requires
This package is not auto-updated.
Last update: 2024-09-23 14:18:31 UTC
README
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist RangelReale/yii2-mdhaliasbehavior "*"
或者
"RangelReale/yii2-mdhaliasbehavior": "*"
将其添加到 composer.json 文件的 require
部分。
想法
此行为添加了一个可以执行两种数据格式之间格式转换的属性别名。
默认的别名字段名为 _alias。
如何使用
在你的模型中
/** * @property string posted_at This is your property that you have in the database table, it has DATETIME format */ class Post extends ActiveRecord { // ... Some code here public function behaviors() { return [ 'alias' => [ 'class' => AliasBehavior::className(), // Our behavior 'attributes' => [ 'start_date' => [ 'dataType' => 'datetime', ], ], ] ]; } }
工作原理
行为为你在 'attributes' 部分中定义的每个属性创建一个名为 attribute_name_alias 的“虚拟”属性。当你读取 $yourModel->attribute_name_alias
时,行为将返回类型为 AliasAttribute 的对象。如果此对象在字符串上下文中使用,它将通过 __toString 魔法方法转换为字符串。在此过程中,attribute_name
的原始值将转换为本地表示。
当你将值分配给 $yourModel->attribute_name_alias
时,它将内部分配给 AliasAttribute 类的 value 属性,并将其转换为数据库存储的属性。
你也可以为每个属性定义单独的配置,并定义它的本地名称、格式等。
致谢
基于 omnilight/yii2-datetime 开发。