Pocket
LINEで送る

Transitionプラグインは便利ですね。ソースコードがかなりすっきりします。
セッションをつかって、ページ遷移と、ページ毎に入力された内容を記録してきれるので、ページ遷移チェックと、入力内容の取り扱いが楽になります。

さて、$this->Transition->automate(‘register’,’complete’, null);という関数を使ってエラーが出ていたのでメモします。

public function automate($prev, $nextStep, $options = array(), $validationMethod = null, $messages = null)

この関数は、第一引数に前のページ、第二引数に次のページ、第三引数にバリデーションチェックするモデルを入れます。第四引数にバリデーションメソッド、第五引数にエラーメッセージも入るようです。第三引数がnullというのはカレントモデルを使うという意味です。なのでこの関数はnullと入れてもカレントモデルでチェックします。$this->request->dataの中身をバリデーションチェックします。

register画面で入力してもらい、confirm画面で入力内容を確認してもらい、completeでDBに保存して終了画面を出すという流れのときに、confirmで$this->Transition->automate(‘register’,’complete’, null);を使う場合は、この関数を使う前に、下記のようにやります。

$this->request->data = $this->Transition->mergedData();

こうすればregister画面で入力された内容が、$this->request->dataに入るので、automate関数で行われるバリデーションチェックがとおるようになります。

これで、confirm画面のviewで、ごちゃごちゃ$this->request->dataにhiddenで入れるような必要がなくなります。

Pocket
LINEで送る

カテゴリー: プログラミング

コメントください

関連記事

プログラミング

cakePHP2 – 多言語化

多言語化します。 cakephpマニュアルのこのページに説明が書いてあ 続きを読む …

プログラミング

Go言語によるビットコインのフルノード実装btcdを調べる(2)

btcdを実行した際のプログラムの流れを最初から確認してみます。 se 続きを読む …

%d人のブロガーが「いいね」をつけました。