繁体   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