yii框架:如何在搜索表单中将搜索结果清空?

时间:2014-04-04 09:58:35

标签: php yii

您好我创建了一个单独的搜索表单,其中包含输入框和按钮。

在我的模型中,我想按类别搜索产品...

但问题是当输入框为空并单击搜索按钮时,它会显示数据库表中的所有条目。

控制器代码是 -

class AddController extends Controller
{
public function actionAddsearch()
{
$model_form = new Add("search");
    $attributes = Yii::app()->getRequest()->getPost("Add");
if(!is_null($attributes))
{
$model_form->setAttributes(Yii::app()->getRequest()->getPost("Add"));
}

  $this->render("searchResults", array(
 "model" => $model_form, 
 "models" => $model_form->searchAdd(),

 ));

 }

模型代码 -

class Add extends CActiveRecord
 {
public function searchAdd()
{
        $criteria = new CDbCriteria();

        $criteria->compare("addname", $this->category, TRUE, "OR");
        $criteria->compare("category", $this->category, TRUE, "OR");
        return Add::model()->findAll($criteria);    
}

查看代码 - addsearch.php

   <div class="search-bar">
<?php
   $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
"action"=>$this->createUrl("add/addsearch"),
'type'=>'search',
)
); 

     echo $form->textFieldRow($model,'category');
     echo "&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp";
     $this->widget('bootstrap.widgets.TbButton',array(
        'buttonType'=>'submit',
        'type'=>'success',
        'size'=>'large',
        'label'=>'Search For Products   ',
    ));

  $this->endWidget(); 


  ?>
 </div>

searchResults.php

<?php 
  echo "<h4>Results for Your Search</h4>";

   foreach($models as $model):

    $this->beginWidget('bootstrap.widgets.TbDetailView',array(
    'type'=>'bordered condensed',
    'data' => array(
  'Shop Name' =>CHtml::link(CHtml::encode($model->addname),array('add/view','id'=> $model->addid)),
'Category' => $model->category
),
'attributes' => array(array('name' => 'Shop Name', 'label' => 'Name of Shop','value'=>CHtml::link(CHtml::encode($model->addname),
                array('add/view','id'=>$model->addid)),'type'=>'raw'),
array('name' => 'Category', 'label' => 'Category of Shop'),

),
)
);

echo "<br><hr><br>";
$this->endWidget();
 endforeach;

 ?>

代码中出了什么问题?

我想在文本框为空时不显示任何产品.. 提前谢谢

2 个答案:

答案 0 :(得分:0)

1)&#39; caterory&#39;搜索方案属性安全吗? (在规则中)

2)category是表模式的一个属性吗?

答案 1 :(得分:0)

更改此

if(!is_null($attributes))
{
     $model_form->setAttributes(Yii::app()->getRequest()->getPost("Add"));
}

$this->render("searchResults", array(
      "model" => $model_form, 
      "models" => $model_form->searchAdd(),
      ));

if($attributes)
{
     $model_form->setAttributes(Yii::app()->getRequest()->getPost("Add"));
     $this->render("searchResults", array(
           "model" => $model_form, 
           "models" => $model_form->searchAdd(),
           ));
}