2014-11-03 57 views
0

如何从数据库中获取数据?一位开发商有多个游戏,但是当我从DB出来调用数据只显示一个数据Yii如何从数据库中获取数据

以下是我的编码:

在控制器

$id = Yii::app()->user->getState('id'); 
$thedb = GamesDevelopersApp::model()->find('developer_id='.$id); 
$gametitle  = CHtml::encode($thedb->gametitle); 
$version  = CHtml::encode($thedb->version); 
$create_time = CHtml::encode($thedb->uploaddate); 
$status  = CHtml::encode($thedb->status); 

$this->render('applist',array('gametitle'=>$gametitle,'version'=>$version,'create_time'=>$create_time,'status'=>$status)); 

在HTML

<td class="apptd2"> 
     <?php foreach($models as $model){ 
      echo CHTML::encode($model->gametitle); 
     }; ?> 
    </td> 
+1

您的问题尚不清楚。作为pe如果一个开发者有多个游戏,那么应该有多于一行的结果。你可以用$ thedb做foreach – 2014-11-03 07:47:04

+0

是'gametitle'关系吗? – Dinistro 2014-11-03 07:53:42

+0

@AbhisekMalakar是的,它应该超过一行结果... foreach'$ thedb'?你有没有例子?所以我可以尝试理解 – TheSmile 2014-11-03 08:06:12

回答

2

在您的数据库请求中,您只是检索一个条目,因为您是我们荷兰国际集团的find方法:

$thedb = GamesDevelopersApp::model()->find('developer_id='.$id); 

而且在Yii的文档,你会看到他的FOT方法find

查找具有指定条件的单个活动的记录。

这就是为什么下面的循环有没有意义

<?php foreach($gametitle as $title){ 
    echo $title; 
}; ?> 

对我来说,最好是在控制器中使用findAll

$id = Yii::app()->user->getState('id'); 
$models = GamesDevelopersApp::model()->findAll('developer_id='.$id); 
$this->render('applist',array('models'=>$models)); 

并在视图下面的循环:

<?php foreach($models as $model){ 
    echo CHTML::encode($model->gametitle); 
}; ?> 
+0

感谢您的回复,但输出错误是'试图获得非对象的属性' – TheSmile 2014-11-03 09:04:56

+0

@darkheir,你说你想使用'findAll',但是你正在使用'find'。 – Dinistro 2014-11-03 09:06:03

+1

我的不好,这是我的国家的早晨^^ – darkheir 2014-11-03 09:07:20

相关问题