在刀片中访问多维数组

时间:2016-06-12 17:57:58

标签: php arrays laravel multidimensional-array eloquent

每个用户都有一个用户(一对一),语言和爱好(多对多)。

比赛由两名学生组成(自我关系)

我想用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'] }}

我得到了令人讨厌的错误。

任何提示?

1 个答案:

答案 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的实例,并帮助您了解如何导航它。