goo blog サービス終了のお知らせ 

くまきち

山と旅と家族が大事。
でも激しい物欲が理性と財布のタガを飛ばす
最近は自転車も乗ってる

CakePHP: モデルを使わないコントローラ その2

2008-11-27 14:44:13 | SEまわり
 モデルを使わないコントローラを使って、入力フォームを作っている場合。

 ビューにて、

echo $form->create(null, array('type'=>'get','action'=>'login'));


 とした上で、フォーム部品を、

echo $form->text('userid', array('size'=>40));


 とすると、実際に出力されるこの部分のHTMLは、


<table border=0 bgcolor=lightcyan cellpadding=4><tr><td><input name="" type="text" size="40" value="" id="dataUserid" />



となる。

 name属性が空っぽになっている。これは問題。

 $form->create() の第一引数に null じゃなくて、たとえば "Data" とか指定すると、今度は Submit した際に、「Dataモデルがないよ」と怒られてしまう。

 モデル関係なしでやりたいんだが…



 これは、フォーム部品の記述を、次のようにすることで解決できた。

echo $form->text('data.userid', array('size'=>40));


 text メソッドの第一引数を、"data.userid" にしている。

 これで、一応値は渡せるようになった。

 コントローラ側では、$this->params['url']['userid'] としてアクセスできる。

最新の画像もっと見る