2010年2月22日月曜日

cakephp FormHelper のリンク生成、たぶんバグ

/cake/libs/view/helpers/form.php 180行目あたり
if (empty($options['url']['controller'])) {
        if (!empty($model) && $model != $defaultModel) {
          $options['url']['controller'] = Inflector::underscore(Inflector::pluralize($model));
        } elseif (!empty($this->params['controller'])) {
          $options['url']['controller'] = Inflector::underscore($this->params['controller']);
        }
      }
編集時の form の submit 先のURLを自動生成している。基本は、$model つまり、モデル名から命名規則に従っているのだが、モデルで、$useTable = 'hoge' を指定した場合は URLが見当違いになってエラーとなる。


 information の複数形は information であり、それの省略 info を使用したら 複数形が infos だと仰るのだ…。正直 form.php のこの部分だけでは修正できそうにない感じがする。テーブル名を直すことにするよ…チクショウ…。

追記:view 内でお茶を濁した
<?php echo $form->create('HogeInfo', array('url'=>array('controller'=>'hoge_info')));?>

0 件のコメント: