【发布时间】:2015-04-26 20:06:03
【问题描述】:
我正在使用 Laravel 4 构建一个应用程序,但数据透视表存在一些问题。
有 3 个表 Categories , Products , products_categories (pivot)
分类模型
public function product()
{
return $this->belongsToMany('Product', 'products_categories');
}
产品型号
public function category()
{
return $this->belongsToMany('Category', 'products_categories');
}
products_categories 表有 product_id 和 category_id 列。
我想要的是获取该类别中的所有产品并在视图中列出它们
$category = Category::where('id' , '=' , '7')->first();
foreach($category->product as $product){
echo $product->id;
}
我可以看到与特定类别相关的产品 ID,但是当我想使用它来获取所有产品本身时:
$category = Category::where('id' , '=' , '7')->first();
foreach($category->product as $product){
$product = Product::where('id' , '=' , $product->id )->get();
}
return View::make('index')->with('product',$product);
它不起作用:(出现此错误
试图获取非对象的属性
我试过了
$category = Category::where('id' , '=' , '7')->first();
$product = array();
foreach($category->product as $product){
$product[] = Product::where('id' , '=' , $product->id )->get();
}
return View::make('index')->with('product',$product);
这次它抛出了这个错误
Illuminate\Database\Eloquent\Model::setAttribute() 缺少参数 2
我该如何解决这个问题?
【问题讨论】:
标签: php mysql laravel relationship