yii中的搜索操作


Search operation in yii

我正试图在我的项目(一个作业门户)中实现搜索操作。我正试图在同一页上显示结果,不知道该怎么做。我已经做了以下事情。

控制器

$model = new SearchEmployee();
/*Getting Data From Search Form For Processing */
if (isset($_POST['SearchEmployee'])) {
    $model->attributes = $_POST['SearchEmployee'];
    $category   =  $_POST['SearchEmployee']['category_id'];
    $skills     =  $_POST['SearchEmployee']['skills'];
    $experience =  $_POST['SearchEmployee']['experience'];
    $model = SearchEmployee::model()->find(array(
            'select' => array('*'), "condition" => "category_id=$category AND key_skills like'%$skills%'AND experience=$experience",
    ));
    if($model==null)
    {
        Yii::app()->user->setFlash('success', "No Results");
        $this->render('search');
    }
    else
    {
        $this->render('search', array('model' => $model));
    }
}
/*Getting Data From Search Form For Processing */
$this->render('search', array('model' => $model));

视图:一个简短的代码

<?php
/* @var $this SiteController */
/* @var $model LoginForm */
/* @var $form CActiveForm  */
$this->pageTitle=Yii::app()->name . ' - Search Employee';
$this->breadcrumbs=array(
        'Search Employee',
);
$list = CHtml::listData(Category::model()->findAll(),'id','title');
?>
<h1>Search Employees</h1>
<div class="form">
    <?php $form=$this->beginWidget('CActiveForm', array(
            'id'=>'login-form',
            'enableClientValidation'=>true,
            'clientOptions'=>array(
            'validateOnSubmit'=>true,
        ),
    )); ?>
    //Search Form//
    <div class="row">
        <?php echo $form->labelEx($model,'Skills'); ?>
        <?php echo $form->textField($model,'skills'); ?>
        <?php echo $form->error($model,'skills'); ?>
    </div>
    //Search Form// //Result Display//
    <div class="view">
        <h1>Results</h1>
        <div class="view" id="id">
            <h1>Records Display</h1>
            <h4>
                Name:
                <?php echo $form->labelEx($model,'skills Required'); ?>
            </h4>
            <h4>
                Skills:
                <?php echo $form->labelEx($model,'Skills Required'); ?>
            </h4>
            <h4>
                Experience:
                <?php echo $form->labelEx($model,'Skills Required'); ?>
            </h4>
            <h5>
                &nbsp;&nbsp;
                <?php echo CHtml::submitButton('VIew Details'); ?>
            </h5>
        </div>
    </div>

它一直工作到模型代码执行完毕,但在重定向回页面时出现了显示错误模型未定义"。

好的,显然还有更多的错误。。让我们从头开始尝试:

"模型未定义"-因为如果$model为null,则使用$model参数渲染search视图。在搜索视图中,您尝试使用$model变量,但它当然不存在。您必须更改您的视图,这样,如果模型未定义,它就不会使用该模型。或者在搜索中至少发送一个空模型

$this->render('search',new SearchEmployee);

设置好属性后,应该正常调用$model->search()。但似乎您自己创建了查询,所以您可以完全跳过这一行:

$model->attributes = $_POST['SearchEmployee'];