Php Yii使用另一个模型连接表
假设我们有三个表、帖子、用户和图片。其中,帖子与用户表有关系,图像与用户表有关系,因此帖子属于用户,图像属于用户Php Yii使用另一个模型连接表,php,frameworks,yii,Php,Frameworks,Yii,假设我们有三个表、帖子、用户和图片。其中,帖子与用户表有关系,图像与用户表有关系,因此帖子属于用户,图像属于用户 Post { post_id user_id } Users { user_id } Images { image_id user_id } 现在在Yii中,可以在模型中定义关系。我的关系是这样建立的: <?php class Users extends CModel { public function relation
Post {
post_id
user_id
}
Users {
user_id
}
Images {
image_id
user_id
}
现在在Yii中,可以在模型中定义关系。我的关系是这样建立的:
<?php
class Users extends CModel {
public function relations() {
'images' => array(self::HAS_ONE, 'Images', 'user_id')
'posts' => array(self::HAS_MANY, 'Posts', 'user_id')
}
}
class Images extends CModel {
public function relations() {
'user' => array(self::HAS_ONE, 'Users', 'user_id')
}
}
class Posts extends CModel {
public function relations() {
'user' => array(self::HAS_ONE, 'Users', 'user_id')
}
}
Yii中是否有实现这一点的方法?您可以在
用户
模型中使用defaultScope,使其始终连接到图像
模型:
public function defaultScope()
{
return array(
'with'=> array("images")
);
}
我认为这对您来说可能是一个‘Doh…’时刻,但是Posts模型与Users模型的关系被命名为user而不是Users。with()函数指的是关系,而不是模型。我认为,您发布的代码将不起作用。
帖子
和图片
中的用户
关系必须是属于的关系。诚然,我引用了这个例子,但在另一个模型上的连接的想法仍然是一样的。好吧,这确实会有所不同。如果它真的是有一个
你可以使用这个功能。但是它不适用于所属的。
public function defaultScope()
{
return array(
'with'=> array("images")
);
}