从Laravel多对多关系中的两个表中拉出所有字段

时间:2015-02-19 06:27:06

标签: php laravel

请任何帮助我,我如何从laravel中的两个表中拉出所有字段的多对多关系。 我有两张桌子

类别

  • ID
  • CNAME
  • ctitle
  • 描述

产品

  • ID
  • PNAME
  • ptitle
  • pdescription
  • 价格

和桥牌表

products_to_categories

  • ID
  • CATEGORY_ID
  • PRODUCT_ID

所以我根据产品ID从两个表中提取所有字段。

1 个答案:

答案 0 :(得分:1)

UPD:作为评论的patricus,"桥梁"表应该被称为" category_product"

首先,你应该定义" belongsToMany"产品型号中的关系:

// ...
class Product extends Eloquent {
    // ...
    function categories() 
    {
        return $this->belongsToMany('Category');
    }
}

之后你应该按id:

加载产品
$product = Product::find($product_id);

现在您可以通过"类别"访问其类别。属性:

foreach($product->categories as $category) 
{
    // do what you want with the $category
}

M2M关系的官方文档: http://laravel.com/docs/4.2/eloquent#many-to-many