错误讯息:
错误异常
方法whereDate不存在。
大家好,我在使用whereDate时遇到刀片问题。
我的代码:
@foreach($game_fields as $game_field)
@foreach($game_field->games->whereDate('game_start', \Carbon\Carbon::parse($datum))->groupBy('group_id') as $game)
{{ $game[0]->group->name}}
{{ $game[0]->group->games->count() }}
@endforeach
@endforeach
我正在尝试显示所有游戏字段,并且在每个游戏字段中显示将按特定$ date播放的所有游戏,但按group_id分组以按组名显示:
组名|比赛数量
- 第1组| 5
- 第3组| 6
- 第6组| 4个
组名|比赛数量
- 第5组| 4
- 第7组| 6
- 第11组| 4
我有3个模块:GameField,Group,Games
在Games db表中我有:
$table->increments('id');
$table->integer('team_1_id')->unsigned()->index();
$table->integer('team_2_id')->unsigned()->index();
$table->integer('game_field_id')->unsigned();
$table->datetime('game_start');
游戏区域表:
$table->increments('id');
$table->string('name');
组字段表:
$table->increments('id');
$table->string('name');
游戏模块:
public function game_field(){
return $this->belongsTo('App\GameField','game_field_id', 'id');
}
public function group(){
return $this->belongsTo('App\Group','group_id', 'id');
}
GameField模块:
public function games(){
return $this->hasMany('App\Games','game_field_id', 'id');
}
还有其他办法吗?请帮忙
答案 0 :(得分:2)
$game_field->games
是Illuminate\Database\Eloquent\Collection
的实例,而不是Illuminate\Database\Query\Builder
的实例,您应该使用
@foreach($game_field->games()->whereDate('game_start', \Carbon\Carbon::parse($datum))->groupBy('group_id')->get() as $game)
{{ $game->group->name}}
{{ $game->group->games->count() }}
@endforeach