在double上调用成员函数first()

时间:2018-09-29 02:32:32

标签: php mysql database laravel

我有一个错误

  

在double上调用成员函数first()

这是laravel中的查询生成器

$player = DB::table('players')
                 ->join('stats', 'players.username', '=', 'stats.player')
                 ->sum('stats.winpot');
                 ->first();

1 个答案:

答案 0 :(得分:1)

当然。很明显。 sum()函数返回所选列的总和。一个值(不是值的集合)

first()用于集合,以从集合中获取第一个元素。

由于sum函数返回列值的总和(单个值,而不是Collection),因此无法对其调用first()函数。

最重要的是您不必

注意

如果您想同时获得“玩家”和“和”,则可以执行两个查询并将这两个结果绑定在一起。

可能的解决方案。

$player = DB::table('players')
                 ->join('stats', 'players.username', '=', 'stats.player')
                 ->first();

$player->sum = DB::table('players')
                     ->join('stats', 'players.username', '=', 'stats.player')
                     ->sum('stats.winpot');

现在检索到的“玩家”中有一个属性为“和”。您可以通过$player->sum

进行访问