我的控制器中有以下代码可以从表中检索所有数据...当我使用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; ?> Years</h4>
<h5> <?php echo CHtml::submitButton('VIew Details'); ?> </h5>
</div>
</div>
有没有其他方法可以编写查询...它仍然可以使用var_dumb来查看结果。
答案 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
的信息