我有这样的模特:
我需要对这个系列做一些主要的事情
$product_type = ProductType::find(1);
查找产品类型的所有产品。
return $product_type->products;
查找产品类型的所有属性类型
return $product_type->attribute_types;
查找属性类型和产品类型的所有属性。我知道这里的问题是我需要属性作为产品类型和属性类型的子项。
但是,我不确定最好的方法。
答案 0 :(得分:0)
在文档http://laravel.com/docs/eloquent#relationships
中设置关系然后你就可以得到你想要的收藏品:
//return $product_type->products;
$product_type->load('products')->products; // returns Eloquent Collection of products
// or shorter equivalent:
$product_type->products;
//return $product_type->attribute_types;
the same as above since the relationships are identical (many-to-many)
// Then to get Attributes:
$product_type->load('products.attributes');
//then you can get all attributes as a single array (every attr as an array not model):
$attributesArray = $product_type->products->fetch('attributes')->collapse();
// or without casting merge all Attributes in a loop:
$attributesCollection = new \Illuminate\Database\Eloquent\Collection;
foreach ($product_type->products as $product)
{
$attributesCollection = $attributesCollection->merge($product->attributes);
}