我有以下表格:
products (
id
)
attributes (
id
name
value
)
products_attributes (
product_id,
attribute_id
)
而且我需要能够查询特定产品的所有属性。我尝试使用 FLUENT QUERY BUILDER 执行此操作,但我迷失在自己的代码中。
有人可以帮我举个例子吗?
我有以下表格:
products (
id
)
attributes (
id
name
value
)
products_attributes (
product_id,
attribute_id
)
而且我需要能够查询特定产品的所有属性。我尝试使用 FLUENT QUERY BUILDER 执行此操作,但我迷失在自己的代码中。
有人可以帮我举个例子吗?
通常你会为你的两个实体创建模型,你可以在其中指定关系:
class Product extends Eloquent
{
protected $table = 'products';
public function attributes()
{
return $this->belongsToMany('Attribute', 'products_attributes');
}
}
class Attribute extends Eloquent
{
protected $table = 'attributes';
public function products()
{
return $this->belongsToMany('Product', 'products_attributes');
}
}
该belongsToMany()
方法建立了多对多的关系。第一个参数指定相关的模型类名称,第二个参数是保存两个实体之间连接的数据库表的名称。
要查找 ID 为 1234 的产品,您可以这样获取它:
$product = Product::find(1234);
然后,您可以像这样神奇地访问其所有属性:
$attributes = $product->attributes;
有关更多信息,您可以参考文档。