Cakephpでtest.phpにアクセスすると Debug setting does not allow access to this URL.のエラー

Cakphpでphpunitをいれると、/test.phpのアドレスでテスト結果が見れますが

Debug setting does not allow access to this URL.
のエラーがでました

cakephp_test.php

ただ単にデバックレベルを2にしないとだめだっただけ..

$ vim Conifig/core.php

Configure::write('debug', 2);

これで直りました

CakephpのModelのorderをbeforeFindでセット

CakephpのModelのorderをいちいちセットするのが面倒だったので、beforeFindでセットしてみました

Sampleモデルのnameフィールドでorderをかけてみます

class Sample extends AppModel {
    public function beforeFind($queryData) {
        $queryData['order'][] = 'name';
        return $queryData;
    }
}

こんな感じで、findするときは勝手にorderがセットされます

Cakephp2.6でbelongsToに複数のモデルをセット

Cakephp2.6でbelongsToに複数のモデルをセットしたかったので調べました

基本的なことは
アソシエーション: モデル同士を繋ぐ — CakePHP Cookbook 2.x ドキュメント
にありますが、複数の例がない..

class Job extends AppModel {
    public $belongsTo = ['Part', 'Person'];
}

と配列で複数渡せばできました

Cakephp2.7にDebugkitを入れる

ComposerでCakephpにphpunitとdebugkitを入れてみる | bgbgbg
でDebugkitをいれてましたが、Cakephp 3.0が出た影響で、2.x系にいれるときに
cakephp/debug_kit
に、ばっちし書いてないのでメモ

Cakephpのプログラムファイルの下にcomposer.jsonがなければ用意します
こんな感じであればOKですが

$ tree -L 1

.
├── Config
├── Console
├── Controller
├── Lib
├── Locale
├── Model
├── Plugin
├── Test
├── Vendor
├── View
├── composer.json
├── composer.lock
├── index.php
├── tmp
└── webroot

$ vim composer.json

{
    "config": {
        "vendor-dir": "Vendor/"
    }
}

を指定しておくとCakephpのディレクトリ構成にしたがっててよさそうです
これでcomposerでDebugkitをバージョン指定していれます

$ php composer.phar require –dev cakephp/debug_kit “~2.2”

あとは

$ vim Config/bootstrap.php

CakePlugin::load('DebugKit');

を追記すればOKです

Toolbarを出すには

$ vim Controller/AppController.php

class AppController extends Controller {
    public $components = array('DebugKit.Toolbar');
}

で出せます