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")
    );
}