【问题标题】:Laravel Error - Trying to get property game of non-objectLaravel 错误 - 试图获取非对象的属性游戏
【发布时间】:2019-05-30 03:41:06
【问题描述】:

我正在尝试运行一个查询来计算用户参与活动的次数,但我收到了以下错误:

试图获取非对象的属性“游戏”

还有下划线:

<td><?php echo e($player->game); ?></td>

我已经写好了查询

控制器

$players = DB::table("played_game")
    ->select("played_game.user_id","played_game.game","users.username", DB::raw("COUNT(played_game.game) as no_game"))
    ->join("users","users.id","=","played_game.user_id")
    ->groupBy("played_game.game","users.username","played_game.user_id")
    ->orderByRaw('COUNT(played_game.game) DESC')
    ->paginate(15);

查看

@foreach ($players as $key => $player_list)
    <tr>
        <th colspan="3"
            style="background-color: #F7F7F7">{{ $player_list->username }}</th>
    </tr>
    @foreach ($player_list as $player)
        <tr>
            <td>{{ $player->game }}</td>
            <td>{{ $player->no_game }}</td>
        </tr>
    @endforeach
@endforeach 

我想在 td 中显示涉及 colspan 的玩家(用户名)和其他详细信息。

【问题讨论】:

  • 因为$players 是空的?
  • 没有。 $players 不为空
  • 你能转储$players值吗?
  • $player 不是你想象的那样。它可能是字符串或其他东西,但它不是对象,因此您无法访问属性。也许在那个循环中做一个dd($player)
  • $player_list 是一个数组吗?

标签: laravel


【解决方案1】:

paginate() 返回一个Illuminate\Pagination\LengthAwarePaginator 的实例,它扩展了具有items() 等功能的AbstractPaginator,查看它以了解更多有用的功能。

要获得分页结果,请执行-&gt;paginate(15)-&gt;items(),也可以执行all()toArray()toJson() 等,因为它实现了许多接口。

【讨论】:

  • 另外,有趣的事实.. 执行foreach($paginatedResult as $p) { echo $p } 时,您似乎将页面导航窗格作为html
猜你喜欢
  • 2016-06-13
  • 2018-06-02
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
相关资源
最近更新 更多