onunix 2012-06-04 13:46:24 3343次浏览 6条回复 1 0 0

自动生成的_search.php,我想加上缺省值,请问该如何写,例如,我希望: <?php echo $form->textField($model,'t'); ?> 这个文本框缺省写上当前机器时间。

附:完整的_search.php

<div class="wide form">

<?php 
$form=$this->beginWidget('CActiveForm', array(
    'action'=>Yii::app()->createUrl($this->route),
    'method'=>'get',
)); ?>

<div class="row">
    <?php echo $form->label($model,'a'); ?>
    <?php echo $form->textField($model,'a'); ?>
</div>

<div class="row">
    <?php echo $form->label($model,'dep'); ?>
    <?php echo $form->textField($model,'dep',array('size'=>60,'maxlength'=>500)); ?>
</div>

<div class="row">
    <?php echo $form->label($model,'t'); ?>
    <?php echo $form->textField($model,'t'); ?>
</div>

<div class="row buttons">
    <?php echo CHtml::submitButton('Search'); ?>
</div>

<?php $this->endWidget(); ?>

</div><!-- search-form -->
  • 回复于 2012-06-04 15:26 举报

    读不懂...

  • 回复于 2012-06-04 15:30 举报

    <?php echo $form->textField($model,'t',array('value'=>date())); ?>
    这样可以吗?

  • 回复于 2012-06-04 15:31 举报
    public string textArea(CModel $model, string $attribute, array $htmlOptions=array ( )) 
    $model CModel 模型 
    $attribute string 属性 
    $htmlOptions array 附加的HTML属性 
    {return} string 生成的多行文本输入控件 
    

    看到这个htmlOptions参数了么,里面的内容其实就是html的标签属性。构建value,内容写上当前机器的时间也就OK了。

  • 回复于 2012-06-04 16:12 举报

    这种方式 确实把缺省值加上去了,但是发现有个问题,这个 http://localhost/Yii/index.php?r=Test/admin时,发现这个search条件并没有用上去,也就是代码:

    <?php $this->widget('zii.widgets.grid.CGridView', array(
    	'id'=>'test-grid',
    	'dataProvider'=>$model->search(),
    	'filter'=>$model,
    	'columns'=>array(
    		 array(
    			 'header'=>'a',
    			 'type'=>'raw',
    			 'value'=>'$data->a',
    		   ),
    		 array(
    			 'header'=>'depOrProfitName',
    			 'type'=>'raw',
    			 'value'=>'$data->depOrProfitName',
    		   ),
    		 array(
    			 'header'=>'t',
    			 'type'=>'raw',
    			 'value'=>'$data->t',
    		   ),
    		array(
    			'class'=>'CButtonColumn',
    		),
    	),
    )); ?>
    

    并没有使用缺省的查询条件
    <?php echo $form->textField($model,'t',array('value'=>date('2010-01-02'))); ?>

    用户必须点击 Advanced Search,再点击search,这个查询条件才会生效,才会真的过滤掉其他时间的数据,为什么需要点search才生效呢?有点看不懂了。CGridView不就是根据search的条件过滤显示的吗?

  • 回复于 2012-06-04 16:27 举报

    估计是要点search ,这个缺省值才会被取得过滤器中,不点search,就不会取到过滤器中,有什么办法强制一下,强制在打开admin的网页时,就把条件放到过滤器中呢。

  • 回复于 2012-06-04 20:25 举报
您需要登录后才可以回复。登录 | 立即注册