我正在使用 Eloquent ORM 4 - 没有 Laravel 框架。
正如我所注意到的,这个 ORM 非常接近 Ruby 的“Active Record”。
在我的情况下,我需要一个有很多关系的模型。另外,我需要使用关系搜索这些对象。所以,我必须使用joins。
但它使代码加倍。示例:
public function colors()
{
return $this->belongsToMany('Color', 'products_colors', 'product_id', 'color_id');
}
public function scopeJoinColors()
{
return $this->join('product_colors', 'products.id', '=', 'products_colors.product.id')
->join('colors', 'product_colors.color_id', '=', 'colors.id')
}
这种方式有很多相同的东西。事实上,我需要限制关系并以同样的方式加入:
...->where('products_colors.published', '=', 1)
那么,问题 是否可以在 Eloquent 中通过现有关系进行连接?如果没有,您如何处理这些棘手的情况?
还有一个问题。如果您需要 2 个或多个连接到一张表,您会怎么做?我的意思是 EAV。