我正在练习laravel,现在我在会议主题中
这是我的控制器
public function set(Request $request){
$product = Product::findOrFail($request->input('id'));
session()->put('product', $product);
return redirect()->route('cart');
}
当我尝试{{session()->get('product')}}
在刀片上回显时,它会产生输出
{
"id":9,
"name":"Lorem ipsum dolor sit amet",
"description":"Proin pretium, mauris id convallis tempus, lorem enim tincidunt nulla, vel pharetra sapien odio eget ligula. Sed maximus, massa sit amet condimentum bibendum, nisi ante vestibulum ipsum, ut ornare justo lorem mollis justo.",
"price":"22.21",
"cover_image":"JRwg9TSKTvUTvuij.jpg",
"created_at":"2018-07-20 03:47:57",
"updated_at":"2018-07-20 03:47:57"
}
但是当我尝试通过使用对它使用foreach时
@foreach(session()->get('product') as $key)
{{$key->id}}
@endforeach
它显示一个错误 Trying to get property 'id' of non-object
有人可以指导我为什么我得到这个错误谢谢。
您正在遍历单个对象,但是您似乎需要做的是:
{{ session()->get('product')->id }}
如果要循环,则可以执行以下操作:
@foreach (session()->get('product')->toArray() as $key => $value)
{{ $key }}: {{ $value }}
@endforeach
这将导致:
id: 9
name: Lorem ipsum dolor sit amet
description: Proin pretium, mauris id convallis tempus, lorem enim tincidunt nulla, vel pharetra sapien odio eget ligula. Sed maximus, massa sit amet condimentum bibendum, nisi ante vestibulum ipsum, ut ornare justo lorem mollis justo.
price: 22.21
cover_image: JRwg9TSKTvUTvuij.jpg
created_at: 2018-07-20 03:47:57
updated_at: 2018-07-20 03:47:57
但是,作为旁注,这是不好的做法,因为您将视图与会话条目耦合在一起。理想情况下,您的视图仅将产品对象作为视图参数并直接使用它。这样,您可以从会话或数据库查询中向该对象传递该对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句