管理者専用の投稿編集画面を作る

Entryモデルに対し、read機能は既に実装済なので、edit機能を作ります。誰でも書き換えられるのも困るので、AUTHに権限を示すグループを保存しておき、このeditアクションにadmin権限以外の人は入れないようにしておきます。

と思って作り始めたものの、うまくいかない。コントローラでモデルの値をとってきて、ビューでフォームを表示させる。ここまでは楽勝なんですが、フォームのvalue属性にとってきた値を入れたいんですがうまくいかず。なんで?!試しに、array('value' => '2') という感じで値そのままを突っ込んでも反応なし。おかしいな〜、変なとこにハマってしまった。考えてみれば、これまで作ったのは新規登録系だけで編集系は作ってない。何かポイントがあるんでしょうかね。

困ったときは原典に戻れ、ということでこちらで調べた結果、どうやら根本的なことを理解していなかったようです。コントローラでモデルの値をとってくるとき、'entry_data'等の配列にセットしてもフォームに編集用データとして値が渡されません。$this->dataに突っ込んでやる必要があったんですね。これならビューでvalueを設定しなくても自動的に反映してくれます。やべぇ、便利すぎるwww