fef*_*efe 5 sql join eloquent laravel-4
如何在考虑以下表结构的情况下使用与Eloquent的连接:
我有一张特色表
---------------------
ID | Name
---------------------
1 | Property Name
Run Code Online (Sandbox Code Playgroud)
比我有房间
----------------------
RoomID | Property
----------------------
A-212 | 1
----------------------
F-1231 | 1
Run Code Online (Sandbox Code Playgroud)
here属性是外键,而不是我想获取所有属性并计算它们各有多少个房间
重审所有的查询看起来像
class PropertiesRepository extends EloquentBaseRepository implements PropertiesInterface
{
use TaggableRepository;
/**
* Construct
* @param Properties $properties
*/
public function __construct( Properties $properties )
{
$this->model = $properties;
}
/**
* Get all properties joining rooms
* @return Properties
*/
public function getAll()
{
return $this->model->get();
}
}
Run Code Online (Sandbox Code Playgroud)
如何扩展此查询以获得所需的结果?
Jar*_*zyk 18
$this->model->leftJoin('Rooms', 'Properties.ID', '=', 'Rooms.Property')
->selectRaw('Properties.*, count(Rooms.RoomID) as RoomsCount')
->groupBy('Properties.ID')
->get();
Run Code Online (Sandbox Code Playgroud)
Hen*_*var 12
在您的属性模型类上定义关系:
<?php
namespace App\Models;
class Property extends Model {
public function rooms() {
return $this->hasMany(Room::class);
}
}
Run Code Online (Sandbox Code Playgroud)
$properties = Property::withCount(['rooms'])->get();
Run Code Online (Sandbox Code Playgroud)
这将在结果中添加一个 rooms_count。
归档时间: |
|
查看次数: |
12915 次 |
最近记录: |