php - Laravel 5 急切加载没有直接关系的模型

标签 php laravel eloquent laravel-5

我有..

型号:

Player
id,player_name

Sport
id,sports_name

Game
id,player_id,sports_id,scores

模型关系

玩家 有很多 游戏体育 有很多 游戏游戏属于玩家体育


问题:在 Controller 中,是否可能加载体育以及每个游戏中的每个< em>玩家?

在单个查询中,我想在我的Blade中实现这样的效果..

@foreach($player as $p)
  @foreach ($p->sport as $ps) /*this wont work, since player has not relationship with sports*/
    @foreach ($ps->game as $psg)
      {{$psg->id}}
      {{$psg->player_name}}
      {{$psg->sports_name}}
      {{$psg->scores}}
    @endforeach    
  @endforeach
@endforeach

还有其他方法可以实现吗?谢谢!

最佳答案

您可以使用Nested eager loading :玩家有很多游戏,游戏属于一项运动。

$player=Player::with('games','games.sport')->find($id);
foreach($player->games as $game)
{
   echo $game;
   echo $game->sport;
}

关于php - Laravel 5 急切加载没有直接关系的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841969/

相关文章:

php - 按多列对 Eloquent 集合进行排序的语法是什么?

mysql - 如何更新多个相同的外键值,它是 laravel 中的文件类型

PHP Mysql 如何让字段获得与自增id相同的值

php - 一些 Laravel 播种器没有执行任何操作 - 没有错误,但没有数据插入表中

Laravel Eloquent 查询运行两次

javascript - Laravel 和 Angularjs 部分

php - 通过在电子邮件而不是短信中发送代码来确保帐户安全 : Laravel 5. 2

php - Doctrine 2 和 Zend 1.11 转换映射错误..

javascript - 一个页面中有多个,需要传递数据

php - 如何使用 PHP 将 HTML 转换为可实时编辑的模板?