试图在Laravel Session foreach中获取非对象的属性'id'

初学者

我正在练习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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Laravel“试图获取非对象的属性'id'”

试图在laravel 5.6中获取非对象的属性'id'

Laravel - ErrorException:试图获取非对象的属性“staff_id”

试图使用laravel获取非对象的属性'id'

Laravel-试图获取非对象的属性“ id”,而不是dd

Laravel 5.5试图获取非对象的属性“ id”

Laravel 8:试图获取非对象错误的属性“id”

试图获取非对象 Laravel 错误的属性“id”

laravel试图获取非对象错误的属性“ id”

LARAVEL 6.x = 试图获取非对象的属性“id”

laravel 错误:试图获取非对象的属性“id”

试图在控制器 Laravel 中获取非对象 Auth::user()->id 的属性“id”?

更新错误-试图获取Laravel 5.8中非对象的属性'id'

ErrorException (E_ERROR) 试图在 laravel 5.8 中获取非对象的属性“id”

试图在Laravel 5.7中获取非对象foreach刀片的属性

试图仅在我的网站中获取非对象的属性“id”

试图在laravel中获取非对象的属性

ErrorException(E_ERROR)试图获取非对象的属性“ id”(查看:-laravel 5.5

Laravel 动态复选框错误:试图获取非对象的属性“id”

试图获取非对象的属性“ join_id”

试图获取非对象的属性“id”如何解决?

试图获取非对象错误的属性“id”(资产管理系统)

Facade\Ignition\Exceptions\ViewException 试图获取非对象的属性“id”

Laravel 属于试图获取非对象的属性

试图获取非对象的属性-Laravel 5

试图获取非对象的属性-Laravel 5.4

Laravel ErrorException:试图获取非对象的属性

登录laravel试图获取非对象的属性

试图获取非对象laravel 5.3的属性