0

对于我正在开发的 Laravel 应用程序,我想用我的 Eloquent 模型做这样的事情:

$product = Product::with('terms')->find(1);

$brand = $product->terms('brand');
$color = $product->terms('color');

这些术语是多对多的关系。在这种情况下,术语是分类学术语。因此,产品术语可能是:Nike、Red、Boys 等。如果我这样做,$product->terms我会得到所有术语,当我这样做时,$product->terms('brand')我会得到“Nike”。

现在我的产品模型是这样的:

class Product extends Eloquent {
    protected $guarded = array();

    public static $rules = array();

    public function terms($taxonomy)
    {
        return $this->belongsToMany('Term', 'productterms');
    }

}

甚至有可能做我想要实现的目标吗?

4

1 回答 1

0

为什么不直接使用一对多关系呢?有一个颜色表和一个品牌表,然后产品可以有属于一个颜色和品牌。

如果您必须有多对多(这样一个产品可以有多个品牌或颜色),那么您可以再次使用颜色和品牌表,然后使用连接表来建立关系。

这在 Laravel 4 文档中都有描述。

于 2013-05-02T04:46:55.733 回答