我一直在关注一个教程,它向我展示了我可以将数据库表中所有记录的详细信息传递给这样的视图:
$teams = $this->team->all();
在视图中有一段代码表示......
@if ($teams->count())
这很好......如果有$ team,那就做下一步。
问题来自于我想要对此进行优化查询(我将$ id传递给控制器):
$teams = DB::table('teams')->where('league_id', $id)->get();
简单地说,当这样做时,视图中的count()函数不再可用。 我在最终的$ teams阵列上完成了print_r($ teams),第一个有更多的信息可用,但我想知道是否有人可以帮助我理解为什么count()不可用以及我怎么做'恢复它'?
非常感谢。 DS
答案 0 :(得分:1)
我猜你没有通过该查询的外观使用Eloquent,你正在使用本机查询构建器。
所以,如果你打算使用Eloquent,假设你有一个Team
模型,就像这样:
$teams = Team::where('league_id', $id)->get();
这将返回Illuminate\Database\Eloquent\Collection
(Illuminate\Support\Collection
的子类)的实例。您可以在此处使用$teams->count()
。
但是,您在那里使用的查询构建器将返回stdClass
个对象的数组。
因此,您可以将其视为一个数组,或者在您检索团队的地方,您可以简单地添加一个新行:
$teams = new Illuminate\Support\Collection($teams);
你又回来了。