2015-11-03 69 views
1

我在我的項目MainAdsAdsImage 2個表,其結構如下如何使用顯示數據從兩個表中yii2

MainAds  AdsImage 

id   id 
category  main_ads_id 
description image 
title 
price 

,我有以下的列表視圖

<div class="container"> 
    <div class="row"> 
     <div class="item"> 
      <div class="well"> 
        <img class="img-responsive" src="http://placehold.it/700x400" alt=""> 
        <span>$21.00</span> 
       <h4> 
        <a href="#">Project Name</a> 
       </h4> 
      </div> 
     </div> 
    </div> 
</div> 

哪隻不過是一個模板,並且我想要顯示錶advertisement中的所有數據,所以我該怎麼做?所以,我怎麼可以顯示數據到視圖文件

到目前爲止我試過,但我的工作不正常

<?php foreach ($dataProvider->models as $model) { 
    echo "<div class='item'>" + 
      "<div class='well'>" + 
       "<img class='img-responsive' src='../uploads'.'$imagemodel->image'. alt=''>" + 
        "<span>$21.00</span>" + 
        "<h4>" + 
         "<a href='#'>Project Name</a>" + 
        "</h4>" + 
       "</div>"+ 
      "</div>"; 
     } 
?> 

是顯示上查看文件或其他東西,以及

數據的正確方法

我知道如何使用detailview來做到這一點,但我不知道如何使用不同的模型在視圖頁上使用自定義佈局。

我試了一下雙H在下面回答表明,我越來越像下面

http://i.stack.imgur.com/UcVtR.png

回答

2

MainAds模型創建關係的錯誤爲: -

public function getAdsImage(){ 
    $this->hasOne(AdsImage::className() ,['id' => 'main_ads_id']); 
} 

做一個控制器動作Index as

public function actionIndex(){ 
    $query = Addresses::find()->joinWith(['adsImage']); 

    $dataProvider = new ActiveDataProvider([ 
      'query' => $query, 

     ]); 
    return $this->render('index' ,['dataProvider' => $dataProvider]); 
} 

index.php視圖

<div class="container"> 
    <div class="row"> 
     <div class="item"> 
      <div class="well"> 
        <?php if(ArrayHelper::getValue($model->adsImage,'image') !== null):?> 

     <?= \yii\helpers\Html::img($model->adsImage->image,['class' => 'img-responsive' ,'alt' =>''])?> 

    <?php endif; ?> 
        <span>$<?= $model->price?></span> 
       <h4> 
        <a href="#"><?= $model->title?></a> 
       </h4> 
      </div> 
     </div> 
    </div> 
</div> 
+0

可我的HTML代碼直接發佈到'listview'而無需創建一個新的文件或我要創建一個名爲'列表視圖的新文件

<?= \yii\widgets\ListView::widget([ 'dataProvider' => $dataProvider, 'itemView' => 'listview' ]); ?> 

更改listview.php文件。 php'? –

+0

其工作但它仍然給關係連接一個錯誤。它說試圖在'$ model-> adsImage-> image'上獲取未知屬性。我希望你知道我爲一個廣告節省了多個圖片,這就是爲什麼我爲圖片創建了一個單獨的表格。但在這個列表視圖我只是想顯示任何一個圖像,沒關係哪一個 –

+0

這是因爲在某些情況下,你沒有在AdsImage表中的圖像..檢查更新代碼 –

相關問題