CakePHP:在$ this-> Model-> find中使用LOCATE子句

时间:2018-01-22 14:01:35

标签: php mysql cakephp

以下查询根据分配给用户的系统返回结果。所有用户的系统分配都存储在名为systems的列中以逗号分隔的数组中。 (例如,22,50,8,18。)

SELECT full_name, email_address FROM users WHERE dept_id = 1 AND LOCATE('8', systems);

在MySQL中运行此查询时,它会返回分配了系统8的每个用户的名称和电子邮件地址。我需要为CakePHP 2.0格式化此查询,LOCATE参数将来自我的add.ctp文件($current['Doc']['dept_id'])中的变量。到目前为止,我已经有了这个,这对于找到dept_id = 1的每个人来说都很好。

$toarray = $this->User->find('all', array(
             'fields' => array('User.email_address', 'User.full_name'),
             'conditions' => array('User.dept_id' => 1)
              )
           ); 

我对如何将LOCATE子句合并到此结构中一点也不清楚,这样我才能获得在add.ctp中分配了系统的用户。

1 个答案:

答案 0 :(得分:1)

你有没有尝试过假设的答案?

$toarray = $this->User->find('all', array(
    'fields' => array('User.email_address', 'User.full_name'),
    'conditions' => array('User.dept_id' => 1, "LOCATE('8', systems)")
));