【发布时间】:2014-08-12 06:59:38
【问题描述】:
我已经定义了这样的 Eloquent 模型:
class Order extends Eloquent {
public function station() {
return $this->belongsTo('Station');
}
}
class Station extends Eloquent {
public function client() {
return $this->belongsTo('Client');
}
public function orders() {
return $this->hasMany('Order');
}
}
class Client extends Eloquent {
public function stations() {
return $this->hasMany('Station');
}
}
现在我想做一个与所有这些相关的查询,但我无法弄清楚如何以 Eloquent 方式进行。这是我要返回的查询的 SQL:
SELECT o.id, c.name AS cname, s.name AS sname, o.created, o.due, o.name, o.comments, o.points
FROM orders o
JOIN station s ON o.station_id = s.id
JOIN client c ON c.id = s.client_id
WHERE s.id IN (
SELECT id FROM orders WHERE complete
)
我对如何以 Laravel/Eloquent 方式做到这一点感到困惑。
【问题讨论】:
-
您需要什么结果?雄辩的模型或那些
selected字段的数组?你也确定:WHERE s.id IN ...- 不是o.id IN...吗?您可以使用Query\Builder构建完全相同的查询,不需要原始部分。