dongshen9058 2016-01-25 07:57
浏览 47

SQL Join视图在Yii2中不起作用

I am using 3 tables(property,property_rooms,property_images). I have a sql query and need to implement it in Yii action and view.

SELECT * FROM property JOIN property_rooms ON property.property_id = property_rooms.property_id JOIN property_images ON property.property_id = property_images.property_id 

In controller/action i have used the following code:

$sql ='SELECT * FROM property JOIN property_rooms ON property.property_id = property_rooms.property_id JOIN property_images ON property.property_id = property_images.property_id';
$properties = property::findBySql($sql)->all();          
return $this->render('index',['properties'=>$properties]);

In View file, I have used:

<?php foreach ($properties as $property): ?>
    <?= $property->property_id ?>
    <?= $property->price?>
<?php endforeach; ?>

The values for the first table is displaying but to access & diplay the values of the other tables.

  • 写回答

1条回答 默认 最新

  • doujiao1814 2016-01-25 08:53
    关注

    Since you are using

    $properties = property::findBySql($sql)->all();          
    

    $properties will contain property models.

    You can define relations (such as propertyRooms) and access to them using

    <?php foreach ($properties as $property): ?>
        <?= $property->property_id ?>
        <?= $property->price?>
        <?php foreach($property->propertyRooms as $pr) : ?>
               <?php /* ... */ ?>
        <?php endforeach; ?>
    <?php endforeach; ?>
    

    For example, propertyRooms property can be defined inside property model as:

    public function getPropertyRooms() { return $this->hasMany(PropertyRoom::className(), ['property_id' => 'property_id']); }
    

    Finally, I'll use ActiveDataProvider methods to get properties data:

    $properties = property::find()->with('propertyRooms')->all();
    

    So you will get all properties data in a single step.

    评论

报告相同问题?

悬赏问题

  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?