2014-11-03 6 views
0

Как данные yii foreach из базы данных? Один из разработчиков есть несколько игр, но когда я называю данные из БД показывают только один данные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

Ваш вопрос непонятен. r, если у одного разработчика есть несколько игр, тогда в результате должно быть больше одной строки. SO вы можете сделать foreach с $ thedb –

+0

- это 'gametitle' отношение? – Dinistro

+0

@AbhisekMalakar да, это должно быть больше чем одна строка в результате ... foreach '$ thedb'? у вас есть пример? поэтому я могу попробовать понять – TheSmile

ответ

2

В запросе БД вы просто извлекаете одну запись, потому что вы являетесь нами ING метода find:

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

И в доке Yii вы увидите фот он 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

+0

@darkheir, вы сказали, что хотите использовать 'findAll', но вы используете' find'. – Dinistro

+1

Мой плохой, утро в моей стране ^^ – darkheir

Смежные вопросы