【问题标题】:Laravel 4 Eloquent many-to-many condition parameterLaravel 4 Eloquent 多对多条件参数
【发布时间】:2013-04-24 18:57:53
【问题描述】:

对于我正在开发的 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');
    }

}

是否有可能做我想要实现的目标?

【问题讨论】:

    标签: php laravel relationship laravel-4 eloquent


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 2013-09-15
      • 1970-01-01
      • 2021-05-12
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 2019-06-13
      相关资源
      最近更新 更多