Yii-通过定义模型两个级别中的关系
我想知道在一个模型中,是否可以通过两个表定义一个关系 我想从图片模型开始,得到相对位置模型 我有一个图片模型:Yii-通过定义模型两个级别中的关系,yii,relationship,Yii,Relationship,我想知道在一个模型中,是否可以通过两个表定义一个关系 我想从图片模型开始,得到相对位置模型 我有一个图片模型: id | event_id id | place_id id 我有以下事件模型: id | event_id id | place_id id 我有一个地点模型: id | event_id id | place_id id 我知道我可以这样做:$model->event->place 但我只是想知道这是否可能 我的目标是创建一个recursiveEncode方法,并
id | event_id
id | place_id
id
我有以下事件模型:
id | event_id
id | place_id
id
我有一个地点模型:
id | event_id
id | place_id
id
我知道我可以这样做:$model->event->place代码>
但我只是想知道这是否可能
我的目标是创建一个recursiveEncode方法,并传递关系中的“place”,以获得格式良好的JSON
谢谢 通过使用with
和to
关系,使用Yii
尽可能简单。作为Yii的官方文件:
通过
获取相关数据时用作桥接的模型关系的名称。只能为HAS\u ONE和HAS\u MANY设置
与
字符串|数组,与此对象一起加载的子相关对象的列表。注意,这只适用于延迟加载,而不是急切加载
示例:
'author'=>array(self::BELONGS_TO, 'User', 'author_id'),
'comments'=>array(self::HAS_MANY, 'Comment', 'post_id', 'with'=>'author')
然后,您可以使用
访问相关对象。例如parent.child
类似这样的内容:
class Picture extends CActiveRecord {
...
public function relations () {
return array(
'event' => array( self::BELONGS_TO, 'Event', 'event_id' ),
'place' => array( self::BELONGS_TO, 'Place', array('place_id'=>'id'), 'through' => 'event' ),
);
}
...
}
完美的我不知道我自己使用的单词“through”是Yii中的一个关键词。很好用!对于其他人,要注意数组的顺序,好的语法是:'place_id'=>'id'