2015-11-28 5 views
0

Я - yiibie. То, что я пытаюсь сделать, это получить данные из моей базы данных, и для этого я использую cDbCriteria. Я хочу получить последние 4 изображения из моей таблицы базы данных, которая называется Event. и затем хотите отобразить эти 4 изображения отдельно. Я использую этот метод, но не получаю никакого результата, пожалуйста, помогите мне в этом.Yii: Получение данных с использованием Cdbcriteria

 <?php 
$Criteria = new CDbCriteria(); 
$Criteria->limit = 4; 
$Criteria->order = "image DESC"; 
$Criteria->select = "id, image"; 
$Events = Event::model()->findAll($Criteria); 
foreach ((array)$Events as $Event) 
{ 
    $Event[1]=$image1; 
    $Event[2]=$image2; 
    $Event[3]=$image3; 
    $Event[4]=$image4; 

} 
    ?> 
<div class="row"> 
<h3>Events</h3> 
<div class="col-md-3"> 
<div class="thumbnail"> 

    <img src="<?php echo $image1 ?>"> 

<div class="caption"> 
    <a href="join.php"> <button class="btn btn-primary center-block">Join</button></a> 
    </div> 
    </div> 
</div> 

ответ

0

метод FindAll() возвращает массив ActiveRecords, так что вам нужен цикл по каждому элементу. Попробуйте:

foreach ((array)$Events as $Event) 
{ 
    echo " 
     <div class='col-md-3'> 
     <div class='thumbnail'> 
      <img src='$Event->image' > 
      <div class='caption'> 
       <a href='join.php'><button class='btn btn-primary center-block'>Join</button></a> 
      </div> 
     </div> 
     </div> 
    "; 
} 
+0

image' >"; } ?>
я попробовал, как это, но это ISN; т showning мне изображение –

+0

пожалуйста, можете отредактировать его в коде выше, на самом деле я не очень хорошо с этим вещи, я буду благодарен. –

+0

Спасибо @Giuseppe Romano, я пропустил вещь, пожалуйста, позвольте мне уладить мой вопрос .. –

0
$Criteria = new CDbCriteria(); 
$Criteria->limit = 4; 
$Criteria->order = "id DESC"; 
$Criteria->select = "id, image"; 
$Events= Event::model()->findAll($Criteria); 

Это будет дает последние 4 записей

1-й путь

if(isset($Events[0])) 
     echo $Events[0]->image; 
if(isset($Events[1])) 
     echo $Events[1]->image; 
if(isset($Events[2])) 
     echo $Events[2]->image; 
if(isset($Events[3])) 
     echo $Events[3]->image; 

я здесь проверка isset(), потому что может В3 запись. Это статический

второй путь

foreach($Events as $event) 
    { 
     echo $event->image; 
    } 

    this is dynamic binding. 
+0

Я обновил вопрос, пожалуйста, взгляните на него. –

+0

foreach тоже дисплей изображение индивидуально. динамический. и это хорошая практика, использующая динамическое связывание, а затем статическое связывание – Dhara

+0

Спасибо @jazz за ваш ответ, я понимаю логику, но я не могу отобразить изображение, код правильный, поскольку я отобразил имя в каком-то другом примере, используя тот же код. что может быть проблемой, почему она не показывает изображение? –

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