正直find等を使用するのは面倒です。
SQLを直接実行するには以下のようにします。
$sql='select count(*) as cnt, referer from acls where controller=\''.$this->name.'\' and action=\''.$this->action.'\' and role like (select concat(\'%\',role,\'%\') from users where id ='.$this->Auth->user('id').' and del_flg=\'0\') and del_flg=\'0\''; Debugger::dump($sql); $data=$this->User->query($sql);
$dataに入った値を取り出すのは以下の通りです。
分からなければ一度Debuggerで変数の中身を確認しましょう。
if($data[0][0]['cnt'] !== '1'){ $this->Session->setFlash(__('Authentication failed')); $this->redirect($this->Auth->logout()); }