繁体   English   中英

如何附加其他Yii 1.16 ActiveRecord模型?

[英]How Do I Append Additional Yii 1.16 ActiveRecord Models?

我对使用Yii调用记录很熟悉,但是如何使用现有的活动记录模型并使用其他查询向其添加更多信息呢?

例如:

$user = User::model()->findByPk(1);
$user[] = User::model()->findByPk(2);

基本上,我试图添加模型$ user1 + $ user2。 在这种类型的示例中,我希望用户1和2都处于同一$ user模型中。 (我实际上没有尝试过上面的代码,但是我认为它不会那样工作。)从两个请求中获取的信息将完全相同。

请注意,我并不想同时获得这两个用户。 我知道该怎么做。 在这个问题中,我试图采用一个现有模型,并通过将两个模型合并在一起,向其中添加更多数据以形成一个模型。

你可以这样做:

$users = array();
$user1 = User::model()->findByPk(1);
$user2 = User::model()->findByPk(2);
array_push($users, $user1);
array_push($users, $user2);

现在$users是一个包含两个对象的数组。

您可以使用

$users = User::model()->findAllByPk(array(1,2));

这将返回和用户模型数组

没有内置的Yii方法可以完成您要完成的任务。 相反,您可以对模型进行一些自定义增强。

private $additionalUsers = array();

public function addAdditionalUser($user)
{
    $this->additionalUsers[] = $user;
}

public function getAdditionalUsers()
{
    return $this->additionalUsers;
}

然后,您可以如下使用它:

$user = User::model()->findByPk(1);
$user->addAdditionalUser(User::model()->findByPk(2));

但是,在不了解“合并”模型的含义的情况下,这可能不是您想要的。 如果此答案不符合您的需求,则说明如何使用合并模型的示例将非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM