gpt4 book ai didi

php - 在 Yii 中使用统计查询

转载 作者:行者123 更新时间:2023-11-29 00:37:25 31 4
gpt4 key购买 nike

我正在尝试使用统计查询获取在我的网站上发布的每个请求的提案数量。即,登录用户发布的每个请求的提案数量。我正在使用代码获取所有用户的数量

return array(
'serviceproposals' => array(self::HAS_MANY, 'Serviceproposal', 'ServiceRequestID'),
'user' => array(self::BELONGS_TO, 'Buyer', 'user_id'),
'postCount'=>array(self::STAT, 'serviceproposal', 'ServiceRequestID'),
);

数据库:
用户 [user_id,name,password],
提供者[用户 ID、提供者公司、提供者详细信息]、
买家[user_id,contactinfo],
ServiceRequest[ServiceRequestID,Buyer.user_id,details,date],
ServiceProposal[ServiceProposalId,ServiceRequestID,Provider.user_id,services,propsal_rate]

邀请所有建议...

最佳答案

为此,您需要将当前登录用户的 user_id 传递给 STAT 关系。

有两种方法可以实现,使用 conditional query ,或使用 Parameterized named scopes

  1. 条件查询。

    • 预加载:

      $obj= ServiceRequest::model()->with(array(
      'postCount'=>array('condition'=>'user_id = :param',
      'params' => array(':param' => $user_id))
      ))->findAll();
    • 延迟加载:

      $serviceRequestObject->postCount(array(
      'condition'=>'user_id = :param',
      'params' => array(':param' => $user_id)
      ));
  2. 参数化命名范围:
    在你的模型中

    public function postCountUser($fieldValue=5) {
    $this->getDbCriteria()->mergeWith(array(
    'condition' => 'user_id = :param',
    'params' => array(':param' => $fieldValue)
    ));
    return $this;
    }

    然后像这样使用:

    • 预加载:

      ServiceRequest::model()->with('postCount')->postCountUser($user_id)->findAll();
    • 延迟加载:

      $serviceRequestObj->postCount->postCountUser($user_id);

关于php - 在 Yii 中使用统计查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13678411/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com