簡體   English   中英

如何在IN條件cakephp中刪除單引號

[英]how to remove single quotes inside IN condition cakephp

我試圖在cakephp 3的IN條件中傳遞逗號分隔的值,但它在方括號('12,18')中使用單引號引起來的值。

請建議我如何刪除它。

預期產量(12,18)

下面是我的代碼

public function checkPermission(){
        $userId = $this->request->getSession()->read('Auth.User.id');
        $arodta = TableRegistry::get('Aros');
        $Arosdata = $arodta->find()->where(['foreign_key' => $userId])->first()->toArray();
        if(!empty($Arosdata)){
            $aroId = $Arosdata['parent_id'];
            $aroAcodata = TableRegistry::get('ArosAcos');
            $arocodata = $aroAcodata->find()->where(['aro_id =' => $aroId]);   
            if(!empty($arocodata)) {
                foreach ($arocodata as $data){ 
                    $acoId[] = $data['aco_id'];
                }
                if(!empty($acoId)){
                    $acoData = implode(',',$acoId);
                    $acosName = TableRegistry::get('Acos');
                    $arac = $acosName->find()->where(['id IN' => $acoData]);
                    sql($arac);exit;                                           
                }
            }
        }                         
    }

我的陣列數據

$acoId[] = 

    Array
    (
        [0] => 12
        [1] => 18
    )

我正在輸出像

SELECT 
  Acos.id AS `Acos__id`, 
  Acos.parent_id AS `Acos__parent_id`, 
  Acos.model AS `Acos__model`, 
  Acos.foreign_key AS `Acos__foreign_key`, 
  Acos.alias AS `Acos__alias`, 
  Acos.lft AS `Acos__lft`, 
  Acos.rght AS `Acos__rght` 
FROM 
  acos Acos 
WHERE 
  id in ('12,18')

在Cakephp中,您可以直接為IN子句傳遞數組,而不用逗號將其內含。 在查詢中使用$ acoId數組:

$arac = $acosName->find()->where(['id IN' => $acoId]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM