如何附加额外的 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));

这将 return 和用户模型数组

没有内置的 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));

但是,在不了解您所说的 "merge" 模型的更多含义的情况下,这可能是也可能不是您要找的东西。如果此答案不符合您的需要,您希望如何使用合并模型的示例将很有用。