这个yii声明有什么问题。

时间:2014-04-19 11:14:09

标签: php yii

我的控制器中有以下代码可以从表中检索所有数据...当我使用find而不是findAll时,它的工作正常...使用findAll显示错误'数组到字符串转换&#39 ;。还有其他任何方式来编写查询..

//发布完整的控制器代码//

    public function actionSearch()
    {
         $model = new SearchEmployee();

           /*Getting Data From Search Form For Processing */
          if (isset($_POST['SearchEmployee'])) {

          $category   =  $_POST['SearchEmployee']['category_id'];
          $skills     =  $_POST['SearchEmployee']['skills'];
          $experience =  $_POST['SearchEmployee']['experience'];

         $model = SearchEmployee::model()->findAll("category_id=:category AND
             key_skills like :skill AND experience=:experience", array(
                 'category'=>$category,
                 'skill'=>'%'.$skills.'%',
                 'experience'=>$experience
             ));
          //var_dump($model);  
         $this->render('search', array('model' => $model));
       }
}

// view:search.php:这是我的视图部分,用于搜索和显示结果//

搜索员工

<p class="note">Fields with <span class="required">*</span> are required.</p> 

   <div class="row">
     <?php echo $form->labelEx($model,'Category');   ?>
     <?php echo $form->dropDownList($model,'category_id',$list,array('empty' =>'(Select a Category')); ?>
     <?php echo $form->error($model,'category'); ?>
</div>

    <div class="row">
 <?php echo $form->labelEx($model,'Experience'); ?>
      <?php echo $form->textField($model,'experience'); ?>
      <?php echo $form->error($model,'experience'); ?>  
</div>

    <div class="row">
  <?php echo $form->labelEx($model,'Skills'); ?>
      <?php echo $form->textField($model,'skills'); ?>
      <?php echo $form->error($model,'skills'); ?>
</div>

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



 <div class="view">

   <h1>Results </h1>

 <div class="view" id="id">

   <h4>Name :      <?php echo $model ->name;    ?></h4>
   <h4>Skills:     <?php echo $model ->key_skills; ?></h4>
   <h4>Category:   <?php echo $model ->category; ?></h4> 
   <h4>Experience: <?php echo $model ->experience; ?>&nbsp;Years</h4>  
   <h5>&nbsp;&nbsp;<?php echo CHtml::submitButton('VIew Details'); ?> </h5>
   </div>
   </div>

有没有其他方法可以编写查询...它仍然可以使用var_dumb来查看结果。

2 个答案:

答案 0 :(得分:0)

在你的视图中放置这样的逻辑并不好,但它可能有助于调试..

在您的视图中使用此循环替换您的结果部分,看看它是否是您的问题所在。

<div class="view" id="id">
    <?php 
        if(count($model)) {
            foreach($model as $record) {
                echo "<h4>Name : " . $record->name . "</h4>";
                echo "<h4>Skills : " . $record->key_skills . "</h4>";
                echo "<h4>Category : " . $record->category . "</h4>";
                echo "<h4>Experience : " . $record->experience . "</h4>";
                echo "<h5>" . CHtml::submitButton('VIew Details') . "</h5>";
            }  
         }
     ?>
</div>

答案 1 :(得分:0)

您需要了解CGridView以显示来自db(或其他数组)的表格信息。

根据您的问题,我认为您应该使用gii工具在模型上生成一些crud文件。这将为您提供许多代码示例供您学习。您可以通过在protected/config/main.php文件中取消注释“gii”模块来激活gii。

然后浏览到root-of-site/index.php?r=gii

您可以在Automatic Code Generation | The Definitive Guide to Yii

找到所有关于gii的信息