laravel 5.4方法whereDate不存在

时间:2017-09-27 08:32:46

标签: php laravel

  • Laravel 5.4
  • PHP 7.0.0

错误讯息:

  

错误异常
  方法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

组名|比赛数量 - 第1组| 5
- 第3组| 6
- 第6组| 4个

游戏领域2

组名|比赛数量 - 第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');
}

还有其他办法吗?请帮忙

1 个答案:

答案 0 :(得分:2)

$game_field->gamesIlluminate\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