每个用户都有一个用户(一对一),语言和爱好(多对多)。
比赛由两名学生组成(自我关系)
我想用matchId填充一个多维数组,所有关于第一个学生的信息和所有关于第二个学生的信息。我用这种方式填充数组:
$matches = Match::getMatches($semester->id);
foreach ($matches as $m)
{
$profiles[] = array(
'matchId' => $m->matchId,
'local' => Student::with('user', 'language', 'hobby')->where('user_id', $m->localUserId)->first(),
'incoming'=> Student::with('user', 'language', 'hobby')->where('user_id', $m->incomingUserId)->first());
}
现在我想在刀片模板中访问该数据,但无法成功。
{{ $profiles['local'] }}
有效,但在添加类似
的内容时{{ $profiles['local']['email'] }}
我得到了令人讨厌的错误。
任何提示?
答案 0 :(得分:3)
您目前没有多维数组。您正在$profiles['local']
中存储一个Eloquent数据库结果对象,Student
类的实例。
所以你需要像这样访问它:
{{ $profiles['local']->email }}
或者,当您取得学生时,您可以在结尾处放置toArray()
:
Student::with(...)->where(...)->first()->toArray(),
现在你将拥有一个原始的PHP数组,并且可以像你最初尝试的那样访问它:
{{ $profiles['local']['email'] }}
旁注:如果您不了解如何导航,请尝试使用dd
进行检查。
<?php dd($profiles['local']); ?>
这会向您显示您有一个Student
的实例,并帮助您了解如何导航它。