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

1対多の関係を使用しないのはなぜですか? 色の表とブランドの表があれば、製品は色とブランドに属することができます。

多対多にする必要がある場合 (製品に複数のブランドまたは色を含めることができるなど) は、色とブランドのテーブルを再度作成してから、結合テーブルを使用して関係を表すことができます。

これはすべて Laravel 4 のドキュメントに記載されています。

于 2013-05-02T04:46:55.733 に答える