Php 通过使用多个对象来实现Laravel嵌套foreach
我想在配置文件页面中使用一些数据,以便成功地将这些数据传递给视图Php 通过使用多个对象来实现Laravel嵌套foreach,php,arrays,laravel,foreach,Php,Arrays,Laravel,Foreach,我想在配置文件页面中使用一些数据,以便成功地将这些数据传递给视图 return view('pages.profile' , compact('data' , 'faculty' , 'scores' , 'sub' , 'finance_r')); 但是,当我想使用nested for each将“sub”数据打印到“data”部分的foreach基中时,我得到了一个错误 Trying to get property 'id' of non-object (View: 我想做的最
return view('pages.profile' , compact('data' , 'faculty' , 'scores' , 'sub' , 'finance_r'));
但是,当我想使用nested for each将“sub”数据打印到“data”部分的foreach基中时,我得到了一个错误
Trying to get property 'id' of non-object (View:
我想做的最简单的事
@foreach ($data as $data)
@foreach ($sub as $sub)
{{ $sub->id }}
@endforeach
@endforeach
我在laravel文档上找到了这个,但它不起作用
@foreach ($users as $user)
@foreach ($user->posts as $post)
@if ($loop->parent->first)
This is first iteration of the parent loop.
@endif
@endforeach
@endforeach
我们如何才能在另一个foreach中使用foreach
注意:我传递给视图的所有数据都是对象。
我的子数据是
Collection {#865 ▼
#items: array:8 [▼
0 => Subject {#856 ▼
#table: "subject"
+timestamps: false
#connection: "mysql"
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:5 [▼
"id" => 8
"name" => "پروگرامینگ"
"number_of_credites" => 5
"semester_id" => 1
"faculty_id" => 2
]
#original: array:5 [▶]
#changes: []
#casts: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
#hidden: []
#visible: []
#fillable: []
#guarded: array:1 [▶]
}
1 => Subject {#857 ▶}
2 => Subject {#858 ▶}
还有我的数据
Collection {#848 ▼
#items: array:3 [▼
0 => Scores {#844 ▼
#table: "scores"
+timestampes: false
#connection: "mysql"
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:6 [▼
"id" => 4
"subject_id" => 15
"score" => 100
"scores_student_details_id" => 7
"created_at" => "2018-04-09 15:02:24"
"updated_at" => "2018-04-09 15:02:21"
实际上,我想根据
“faculty\u id”=>1
打印sub。您的问题是您在foreach循环中使用了相同的名称
您可以按照您的代码这样做
@foreach ($data as $value)
@foreach ($sub as $subValue)
{{ $subValue->id }}
@endforeach
@endforeach
但这不是好的做法
根据我的意见,您必须更改控制器中变量的名称,
就像您可以传递data
而不是data
,subs
而不是sub
return view('pages.profile' , compact('datas' , 'faculty' , 'scores' , 'subs' , 'finance_r'));
然后你可以做foreach循环
@foreach ($datas as $data)
@foreach ($subs as $sub)
{{ $sub->id }}
@endforeach
@endforeach
始终给出与变量工作相关的变量名称(单数/复数)
如果您有任何疑问,请尝试此操作并发表评论。您的问题是您在foreach循环中使用了相同的名称 您可以按照您的代码这样做
@foreach ($data as $value)
@foreach ($sub as $subValue)
{{ $subValue->id }}
@endforeach
@endforeach
但这不是好的做法
根据我的意见,您必须更改控制器中变量的名称,
就像您可以传递data
而不是data
,subs
而不是sub
return view('pages.profile' , compact('datas' , 'faculty' , 'scores' , 'subs' , 'finance_r'));
然后你可以做foreach循环
@foreach ($datas as $data)
@foreach ($subs as $sub)
{{ $sub->id }}
@endforeach
@endforeach
始终给出与变量工作相关的变量名称(单数/复数)
如果您有任何疑问,请尝试此操作并发表评论。您正在使用foreach的
$users
。您是否已将其从控制器发送到视图?从何处获取$loop
变量?你确定这就是你犯错误的地方吗?在您提供的代码中,您似乎没有试图在任何地方访问id
属性。@Nasser Ali Karimi您需要为哪个对象执行嵌套foreach?@HirenGohel我看到视图中的所有数据都是可用的,只是我想使用嵌套foreach时出错了each@domdambrogia我看到我在Laravel文档中得到了那个代码不为我工作您正在为foreach使用$users
。您是否已将其从控制器发送到视图?从何处获取$loop
变量?你确定这就是你犯错误的地方吗?在您提供的代码中,您似乎没有试图在任何地方访问id
属性。@Nasser Ali Karimi您需要为哪个对象执行嵌套foreach?@HirenGohel我看到视图中的所有数据都是可用的,只是我想使用嵌套foreach时出错了each@domdambrogia我看到我在Laravel文档中得到了那个代码不为我工作