2014年03月22日

[CakePHP2.x] フォームから保存時にデータを追加する方法

フォームからデータ入力してもらって、合わせて値を追加して保存したい(例えば入力してもらった値の平均値とか)という時に、どうやれば良いのかわからなかったので調べた。
つまり、連想配列への追加をどうやるかっていう話なんだけど。

<?php
public function add() {
        if ($this->request->is('post')) {
            $this->Post->create();
            if ($this->Post->save($this->request->data)) {
                $this->Session->setFlash(__('Your post has been saved.'));
                return $this->redirect(array('action' => 'index'));
            }
            $this->Session->setFlash(__('Unable to add your post.'));
        }
    }
?>

上記がチュートリアルのBlogのコード。
実際にフォームで入力したデータが、連想配列で以下に入ってくる。

$this->request->data

その時、Postテーブルのhogehogeという行にも、ユーザーが入力していないけど値を追加したいという時は、 saveの前に以下のように連想配列に追加すれば出来る。
以下は、hogehogeにvalという値を追加して保存している。

$this->request->data['Post']['hogehoge'] = 'val';
$this->Post->save($this->request->data)
ラベル:PHP cakephp フォーム
posted by lute at 13:59| Comment(0) | TrackBack(0) | CakePHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。