未分類

CakePHPでSQLを直接実行する

投稿日:

正直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());
                        }

Gooleアドセンス用336

Gooleアドセンス用336

-未分類
-,

執筆者:

関連記事

CakePHPでパスワードを暗号化して保存する

CakePHPでパスワードを暗号化して保存するには、 モデルにbeforeSaveメソッドを以下のように追加します。 モデル User.php App::uses(‘AuthComponent’, ‘ …

CakePHPのlayoutを指定する

ログイン画面ではメニューが不要であったりと、 レイアウトを変更したい場合はコントローラーのアクションで以下のように指定します。 View/Layout/配下に作成したレイアウトを指定すればよいのですが …

CakePHPのpaginateのまとめ

joinした列でソートする ソートというのはViewの列名をクリックしてするソートではなく、 ControllerでのSQLのソートです。 virtualFieldsをMoldeに設定します。 ‘Cs …

The Choice

作成中・・・

asp

IIS で エラー コード 0x80070021 が発生した場合の対処法

Visual Studio でlocalのwebサイトに発行し、下記エラーが発ししました。 Visual StudioはExpress 2013 for web。 LocalのIISはWindows8 …