lovelilili
- lovelilili 2021-02-22 已签到连续签到1天,获得了5个金钱
有演示地址吗?
- lovelilili 赞了回复
你的extend是一个Json, 你需要在Model中可以直接访问是吧?
我们写了一个包,https://github.com/ethercap/common ,不太好意思,没有来得及写文档。里面有许多实用的代码,其中就有你这种情况的解决办法。
在composer中加上"ethercap/common":"dev-master"
,然后执行composer update
在使用时,这么使用,如果是一个model
<?php use ethercap\common\behaviors\AttrBehavior; class xxModel extends Model { public function behaviors() { return [ 'class' => AttrBehavior::className(), //你的json的数据库字段 'attrKey' => 'extend', 'properties' => [ 'type', 'area', //其它属性.... ], ]; } } ?>
只要这么配好之后,$model->type,$model->area是可以直接取的,$model->save()时也会存入extend的json中,不用担心任何问题,它跟正常$model的属性是一样的,只是存储方式不一样罢了。另外,rules之类也都是可以正常使用的。
- lovelilili 收藏了话题数据处理求助
- lovelilili 发布了话题数据处理求助
- lovelilili 赞了回复
提供一个思路:新建一个关联模型
Extend
继承Model
,定义一个数组类型成员变量attributes
,从库中取出数据的时候把字段和值放入attributes
,重写Model
的__get
方法,改成从attributes
获取。/* 实际上是从数组attributes中取出type的值 */ echo $extend->type;