Yii Cactiveform获取网址

时间:2013-08-08 15:42:18

标签: yii

我正在使用get方法在Yii中与Cactiveform斗争。这是我的代码:

<?php $form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
    'id'=>'inlineForm',
    'type'=>'inline',
  'method'=>'get',
  'action'=> array('searchview'),
    'htmlOptions'=>array('class'=>'well'),
)); 
echo $form->dropDownListRow($model, 'year',$arrYears); 
echo $form->dropDownListRow($model, 'month',$mons); 
echo $form->dropDownListRow($model, 'day',$days); 
$this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'submit', 'type'=>'primary','label'=>'Vyhledat')); 
  $this->endWidget(); ?>

当我点击提交按钮时,我会收到以下网址:

http://stavbadomusvepomoci.cz/stavba_naklady/index.php?r=expenses%2Fsearchview&Expenses%5Byear%5D=2013&Expenses%5Bmonth%5D=0&Expenses%5Bday%5D=0&yt0=

问题是这些字段的名称是Expenses [year] insted of just:year。当我删除它时,这个网址就可以了。

http://stavbadomusvepomoci.cz/stavba_naklady/index.php?r=expenses%2Fsearchview&year=2013&month=0&day=0&yt0=

我的搜索返回400错误,因为它无法识别网址。我使用reguler CHtml :: beginForm工作,但我希望这可以使用CActive表单。

所以我的问题是:如何摆脱网址中的费用[],以便cactiveform工作。

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

我建议使用$ _GET [“Expenses”]而不是服务器端的整个$ _GET数组,因为它可能包含非搜索相关变量,如CSRF令牌。

我看到实现你想要的唯一方法是dropDownListRow的htmlOptions参数。您可以给它一个特定的名称,这导致yii没有设置依赖于模型属性的名称。

$form->dropDownListRow($model, 'year', $arrYears, array("name" => "year"));