yuu_nkjm blog


2014-11-21(Fri) [長年日記]

[CakePHP][PHP] CakePHPではまったこと,ちょっと分かったこと

まずはメモ

idという属性名以外の属性を主キーにする

以下のような指定が必要.

class User extends AppModel {
  public $primaryKey = 'user_id';

ctpファイルって沢山つくらなあかんの?

 public function resumeRecentState($session_id)
 {$this->render('/Play/monitor');}

他のレンダラを指定してやればOK.

validation

saveから切り出して,CakePHP 2.x | コントローラ内でバリデーション処理を呼び出す方法.

Composerのインストール

zypper in php5-openssl php5-phar php5-mcrypt
curl -sS https://getcomposer.org/installer | php
# composer.jsonがあるディレクトリで以下を実行すると,依存ライブラリがダウンロードされる.
php composer.phar install

debug関数

$this->log(print_r($obj, true));としてログを見ていた.グローバル関数としてdebug($obj)を呼び出すと,debugログが画面上に表示された.Config/??.phpのdebug logの指定の影響を受けるらしい.グローバル関数としてpr($obj)というのもあるようだ.Cakeで使うならdebugの方が良さそうだった.

DebugKit

便利そう.ただ,画面毎のデバッグになるので,リダイレクトを使うとログが見られなさそう.

save

saveの前に暗黙的にバリデーションが呼ばれる.改修前のプログラムがリダイレクトを多用しているせいで,バリデーションエラーなどが追いかけづらかった.

バリデーション

バリデーションにおいて,rule’ キーは必須です.

    'mail' => array(
      array(
        'rule' => 'email',
        ’required’ => false,
        ’allowEmpty’ => false,
        'message' => array("validate_format", "label_mailaddress")
      ),
      array(
        'rule' => array('maxLength', '100'),
        'message' => array("validate_length", "label_mailaddress", "100")
      )
    )
「rule」キーはバリデーションメソッドを定義します。単一の値と配列、いずれも使用できます。「rule」の指定は、モデル中に作成したメソッド名か、コアのバリデーションクラスのメソッド名、もしくは正規表現である必要があります。
本日のリンク元
その他のリンク元
検索

トップ «前の日記(2014-11-20(Thu)) 最新 次の日記(2015-01-16(Fri))» 月表示 編集 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|