亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據條件在查詢中設置參數

根據條件在查詢中設置參數

PHP
繁花不似錦 2022-08-19 15:22:15
我需要編寫一個具有多個條件和條件的查詢。僅當數組不為空時,才會出現這種情況。因此,僅當此數組不為空時才需要參數。whereOROR$location我不確定如何在此條件下編寫此參數條件。這是我正在處理的查詢。$qb = $this->createQueryBuilder("e")            ->select(                 "e.vehicleId",                 "e.schemaId",                 "e.location",            )            ->andWhere("e.vehicleId = :vehicleId")            ->andWhere("e.optionId = :optionId")            ->andWhere("e.schemaId = :schemaId");if (count($position) > 0) {    $qb->andWhere($qb->expr()->orX(                $qb->expr()->andX("e.location = :location"),                $qb->expr()->andX("e.location = :loc")            ));}$qb->setParameters(array(            "vehicleId" => $vehicleId,            "schemaId" => $schemaId,            "location" => $position["location"],            "loc" => $position["loc"],        ));
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

QueryBuilder有兩種方法來設置查詢參數。


您正在使用的那個(和更簡單的.setParameters(array $parameters)setParameter($parameterName, $parameterValue)


使用后者而不是您正在使用的參數,并且可以在需要的地方設置參數:


if (count($position) > 0) {

    $qb->andWhere($qb->expr()->orX(

                $qb->expr()->andX("e.location = :location"),

                $qb->expr()->andX("e.location = :loc")

            ))

        ->setParameter('location', $position["location"])

        ->setParameter('loc', $position["loc"]);

}


查看完整回答
反對 回復 2022-08-19
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

您可以創建保存條件參數的參數化 R 數組。


if (count($position) > 0) {

    $qb->andWhere($qb->expr()->orX(

        $qb->expr()->andX("e.location = :location"),

        $qb->expr()->andX("e.location = :loc")

    ));


     $parameter["location"] = $position["location"];

     $parameter["loc"] = $position["loc"];

}

然后將此參數數組傳遞并合并到 setParameters 方法中。


$qb->setParameters(array_merge(

        array(

            "vehicleId" => $vehicleId,

            "schemaId" => $schemaId,

        ),

        $parameters

));


查看完整回答
反對 回復 2022-08-19
  • 2 回答
  • 0 關注
  • 110 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號