【问题标题】:How Do I Append Additional Yii 1.16 ActiveRecord Models?如何添加额外的 Yii 1.16 ActiveRecord 模型?
【发布时间】:2015-03-12 22:19:13
【问题描述】:

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

例如:

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

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

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

【问题讨论】:

    标签: php activerecord yii model


    【解决方案1】:

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

    但是,在不了解“合并”模型的更多含义的情况下,这可能是也可能不是您要查找的内容。如果此答案不符合您的需求,您希望如何使用合并模型的示例将很有用。

    【讨论】:

      【解决方案2】:

      你可以这样做:

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

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

      【讨论】:

        【解决方案3】:

        你可以使用

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

        这将返回用户模型数组

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-11
          • 2015-04-04
          • 1970-01-01
          • 2017-06-04
          • 1970-01-01
          • 2018-10-21
          相关资源
          最近更新 更多