UsersController内で、以下の様に、beforeFilterで指定する。
function beforeFilter(){ $this->Auth->loginRedirect = array('controller' => 'foo', 'action' => "admin_index"); }
UsersController内で、以下の様に、beforeFilterで指定する。
function beforeFilter(){ $this->Auth->loginRedirect = array('controller' => 'foo', 'action' => "admin_index"); }
開発時のダミーデータの登録日付を全体的に、数ヶ月分動かしたい場合などのSQL
update table1 set created = DATE_ADD( created, INTERVAL 4 MONTH ) ;
この場合だと、createdという日付フィールドの日付を4ヶ月分増やす処理。
CakePHP1.3でページタイトルを設定する方法が変わった
Controllerのアクション内で、
$this->set('title_for_layout', "ページタイトル");
というように設定
View内では、
echo $title_for_layout;
と、これまで通りに出力
親Modelに、以下の様に記述する。
public $hasOne = array( "Profile" => array( "className" => 'Profile', "dependent"=>true, //ここで同時に削除するように指定 "foreignKey"=>'user_id', ); );
Userテーブルに新規登録する時に、Userのメタ情報などが入っているUserProfileなどのテーブルに、同時にレコードを登録する方法。
データを保存する :: モデル :: CakePHPによる開発 :: マニュアル :: 1.3コレクションからのコピペですがメモ。
function add() { if (!empty($this->data)) { // User モデルのデータを保存します。 // このデータは $this->data['User'] にあります。 $user = $this->User->save($this->data); // User が保存されたら、Profile データに User の情報を追加し // 保存します。 if (!empty($user)) { // 新しく生成した User の ID は、 // $this->User->id にセットされます。 $this->data['Profile']['user_id'] = $this->User->id; // User は Profile と hasOne のアソシエーションで関連付いているので // User モデルを通して Profile モデルにアクセスできます: $this->User->Profile->save($this->data); } } }
要は、親Modelのaddに同時に追加する処理を書くと言うこと…。ここら辺も、自動化されると楽だなぁと思ったり。
CakePHP1.3では、Session Helper, Session Componentは自動的に読み込まれないので、明示的に読み込む必要がある。bakeしたview内で用いられているSetFlashメソッドすらエラーが出る始末。慣れないとめんどい。
var $components = array('Session'); var $helpers = array('Session');
CakePHPで使うDBのテーブル名に接頭辞を付けて使うには、app/config/database.phpで以下のように記述する。
<?php class DATABASE_CONFIG { var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user_name', 'password' => '', 'database' => 'database', 'encoding' => 'utf8', 'prefix' => 'prefix_', //here ); } ?>
によると、予約語のrename機能を無効化すればいいらしい
CakePHP 1.3が出ていたとは、知らなかった。ここに、差分内容が載っている。