从提交的表单URL(GET)中删除模型名称

时间:2015-07-13 15:43:15

标签: php forms yii

这是我的表格

         <?php $form=$this->beginWidget('booster.widgets.TbActiveForm',array(
                    'id'=>'listing-main-form',
                    'enableAjaxValidation'=>false,
                    'action'=>Yii::app()->createUrl('site/search'), 
                    'method'=>'get',
                )); ?>

    <div class="form-group" style="padding-bottom:0px;border:none">
                    <label class="control-label" for="selecttype">Type</label>
                     <?php echo $form->dropDownListGroup(
                            $model,
                            'prp',
                            array(
                                'wrapperHtmlOptions' => array(
                                    'class' => 'col-sm-5',
                                ),
                                'widgetOptions' => array(
                                    'data' => CHtml::listData(Type::model()->findAll(), 'id', 'type'),
                                    'htmlOptions' => array('id'=>'selecttype'),
                                ),
                                'label' => ''
                            )
                        ); ?>
                </div>
                <div class="form-group">
               <div id="resproperties">
                    <div class="resdv">
                    <?php echo $form->checkboxListGroup(
                        $model,
                        'rs',
                        array(
                            'widgetOptions' => array(
                                'data' =>CHtml::listData(ResourceCategory::model()->findAll(), 'id', 'res_category'),
                            ),
                           'label' => ''
                        )
                    ); ?>
                     </div>
               </div>
............
............

提交表单后,我可以很好地阅读所有字段的数据。但是对于每个字段,url显示为Model [field],看起来非常难看(见下文)。有什么地方可以从那里删除模型名称吗?

index.php?r=site/search&ItemModel[prp]=1&ItemModel[rs]=&ItemModel[rs][]=2&ItemModel[rs][]=3&ItemModel[rs][]=4&ItemModel[cm] ............

2 个答案:

答案 0 :(得分:2)

您可以明确设置输入名称。

...
'htmlOptions' => array(
    'id'=>'selecttype',
    'name' => 'fieldname'
)
...

您也可以覆盖CHtml和CActiveForm类。

答案 1 :(得分:1)

在每个元素的数组中,添加

'name'=>'your_custom_name'

因此...

<?php echo $form->dropDownListGroup(
                            $model,
                            'prp',
                            array(
                                'wrapperHtmlOptions' => array(
                                    'class' => 'col-sm-5',
                                ),
                                'widgetOptions' => array(
                                    'data' => CHtml::listData(Type::model()->findAll(), 'id', 'type'),
                                    'htmlOptions' => array('id'=>'selecttype'),
                                ),
                                'label' => '',
                                'name' => 'customName'
                            )
                        ); ?>