edit画面でうまくURLが作れなかった
Cake1.2.6
携帯画面で、addはうまくいくのに、edit時だけform::createのurlオプションでうまくurlが作れなかった。
routes.phpはこうなってて、
Router::connect('/mobile/users/:action/*', array('controller' => 'user_mobiles', ));
edit時は勝手にurlの中に/mobile/users/edit/3みたいに最後にidの数字が入ってしまう。これどこからくるの?使わないからいらないんだけど。。。
調査は後回しにして、editとaddの違いはそこだった。それで、form画面で、
<?php echo $form->create('User', array('url' => array('controller' => 'user_mobiles', 'action' => 'edit' )));?>
にしてたら、Postのactionに入るurlが
/user_mobiles/edit/6
みたいになってしまって、urlがうまく作れなかった。
下記のようにして解決
create('User', array('url' =>
array('controller' => 'user_mobiles', 'action' => 'edit', 'id' => null )));?>
idがいらなかったから、nullにしたけど、いる場合はどうすんだろ? 知ってる人教えてください。
解決
解決しました。routesの方で。:id指定がいるんですね。アスタリスクで全てまかなってくれるかと思ってた。
Router::connect('/mobile/users/:action/:id', array('controller' => 'user_mobiles', ));
こうしておけば、viewのurlオプションでid=nullはいらない。