【发布时间】:2014-11-05 17:06:33
【问题描述】:
过去几个月我一直在开发一个 laravel 应用程序,这是我第一次使用该框架。这也是我第一次拥抱和使用 ORM(Eloquent)。
在大多数情况下,Eloquent 在执行基本的数据库操作时似乎非常简单。然而,当事情变得有点复杂时,我经常发现自己花费了太多时间试图弄清楚如何以 Eloquent 方式进行操作并跳到原始数据库查询。
希望有人能建议我是否应该使用 Eloquent 相当容易地在以下稍微复杂的查询中实现我想要的结果,或者我应该继续使用原始数据库查询。
表格:产品、用户、警报
警报有一个user_id、一个product_id和一个amount,用户希望在此收到产品在特定价格下销售的警报。 p>
目前我正在使用原始数据库查询来获取所有警报:
SELECT p.*, u.firstname, u.lastname, u.email, a.amount AS alert_amount
FROM alerts AS a
JOIN dods AS d ON a.product_id = d.product_id
JOIN products AS p ON d.product_id = p.id
JOIN users AS u ON u.id = a.user_id
WHERE a.amount <= p.saleprice1
我的 eloquent 模型的建立关系如下
用户模型
public function alerts()
{
return $this->hasMany('Alert');
}
产品型号
public function alerts()
{
return $this->hasMany('Alert');
}
警报模型
public function product()
{
return $this->belongsTo('Product');
}
public function user()
{
return $this->belongsTo('User');
}
感谢您提出的所有建议。 马特
【问题讨论】: