2015-11-03 77 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表中的图像..检查更新代码 –

相关问题