我有一个关于循环数据在控制器(laravel 4)的问题.我的代码是这样的:
$owner = Input::get('owner');
$count = Input::get('count');
$product = Product::whereOwnerAndStatus($owner, 0)->take($count)->get();
当我想使用foreach循环$product result时,代码如下:
foreach ($product->sku as $sku) {
// Code Here
}
结果返回错误未定义的属性:照明\数据库\口才\收藏::$sku
所以,我试着用这段代码做一些即兴发挥:
foreach ($product as $items) {
foreach ($items->sku as $sku) {
// Code Here
}
}
代码返回如下错误:为foreach()提供的参数无效
有人能帮我解决这个问题吗?
7条答案
按热度按时间4nkexdtk1#
这将抛出一个错误:
因为您无法循环表中具有特定列(
$product->sku
)的模型。因此,必须在整个模型上循环:
在循环中,只需加上
->[column_name]
,就可以检索所需的任何列zdwk9cvp2#
实际上,您的
$product
没有数据,因为Eloquent
模型返回NULL。这可能是因为您使用了whereOwnerAndStatus
,这似乎是错误的,如果$product
中有数据,那么它在您的第一个示例中将不起作用,因为get()
返回多个模型的集合,但事实并非如此。第二个示例抛出错误,因为foreach
没有'我没有得到任何数据,所以我想应该是这样的:此外,您还可以确保
$products
是否有数据:然后在
view
中:5tmbdcev3#
视图(刀片模板):在循环中,您可以检索要查找的任何列
busg9geu4#
sku
是否只是Product
模型的一个属性?如果是:或者
sku
是与另一个模型的关系?如果是这样的话,那么,只要正确设置了关系,代码就可以工作。8iwquhpp5#
这里每个**$data都是单个数据,$allData**包含完整的集合。
f2uvfpb96#
*对表使用foreach
对我来说
pgx2nnw87#
你可以用它来更新laravel中的多个数据,我已经测试过了,它对我很有效。$allcat = Cart::where('user_id',Auth::user()-〉id)-〉get(); foreach($所有目录为$post){$res[] = [ '产品标识' =〉$post-〉产品标识,'数量' =〉$post-〉产品-〉数量+ $post-〉数量,];$barcode =产品::其中('id',$post-〉产品标识)-〉更新(['qty' =〉$post-〉产品-〉数量+ $post-〉数量,]);}