大佬教程收集整理的这篇文章主要介绍了php-Laravel使用belongtoMany从ID获取模型,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Laravel 4构建应用程序,但数据透视表存在一些问题.
有3个表类别,产品,products_categories(数据透视)
类别模型
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);
这次抛出这个错误
我该如何解决?
解决方法:
直接的问题是您试图从foreach循环中重用迭代器变量.这会导致您出乎意料的结果.
foreach($category->product as $product) {
^^^^^^^^
$product = Product::where('id' , '=' , $product->id )->get();
^^^^^^^^
}
但是,无需执行任何操作. $category-> product已经是Eloquent产品模型的集合.无需尝试再次检索单个产品;你已经有他们了.
如果您尝试将此Collection传递给视图,则可以执行以下操作:
return View::make('index')->with('product', $category->product);
另外,作为旁注,如果您尝试按ID查找记录,则可以使用find()方法:
$category = Category::find(7);
以上是大佬教程为你收集整理的php-Laravel使用belongtoMany从ID获取模型全部内容,希望文章能够帮你解决php-Laravel使用belongtoMany从ID获取模型所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。