如何附加其他 Yii 1.16 活动记录模型


How Do I Append Additional Yii 1.16 ActiveRecord Models?

我熟悉使用 Yii 调用记录,但是我将如何采用现有的活动记录模型并使用不同的查询向其附加更多信息?

例如:

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

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

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

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

但是,如果不了解"合并"模型的含义,这可能是您正在寻找的,也可能不是您想要的。如果此答案不符合您的需求,则您希望如何使用合并模型的示例将很有用。

你可以这样做:

$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));

这将返回和用户模型数组