0

我有以下表格:

products (
    id
)

attributes (
    id
    name
    value
)

products_attributes (
    product_id,
    attribute_id
)

而且我需要能够查询特定产品的所有属性。我尝试使用 FLUENT QUERY BUILDER 执行此操作,但我迷失在自己的代码中。

有人可以帮我举个例子吗?

4

1 回答 1

2

通常你会为你的两个实体创建模型,你可以在其中指定关系:

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;

有关更多信息,您可以参考文档

于 2013-05-27T23:20:04.507 回答