技評ウェブサイトの「CakePHPで高速Webアプリ開発」サンプルプログラムでエラー発生中..


第6回 CakePHPで作るToDoアプリをやってます。

Viewに入力フォームを追加

<p><?php echo $html->input('Task/content', array('size' => '40')) ?>

Controllerにaddアクションを追加

function add() {
if (!empty($this->data)) {
if ($this->Task->save($this->data, true, array('content', 'created', 'modified'))) {
$this->flash('タスクが追加されました', '/tasks');
return;
}
}
$this->redirect('/tasks');
}

あとはモデルへの値が渡されてきているかチェック、モデルへのデータの追加とフィールドのホワイトリスト、簡易な完了メッセージ表示、$this->dataに値がないか,saveに失敗したときはリダイレクトなどを追加して、テスト書き込みやってみる。

f:id:sbtn:20100529160537g:image

おや、なんか文字化けしてエラーになってる。

phpMyAdminで確認すると、ちゃんとaddされてるんだけどねー。

ちょっと気持ち悪い。原因を調べよう。。。

追記

原因はよくわからいけど、DBのaddは成功してるんだし、気にしないで先に進むことにした。

Controllerを下記のように書き換えて、add後は/tasksにリダイレクトさせることに。

function add() {
if (!empty($this->data)) {
if ($this->Task->save($this->data, true, array('content', 'created', 'modified'))) {
//$this->flash('タスクが追加されました', '/tasks'); //←コメントアウト
//return;
$this->redirect('/tasks'); //←追加
}
}

桶狭間情報システム

© 2023 Copyright OKESYS. All rights reserverd.