我不明白Laravel在这里做了些什么。我试图做的就是得到我模型的五个随机实例:
$players = User::orderBy(DB::raw('RAND()'))->take(5)->get();
如果我var_dump()
这个变量,我看到很多无用的属性,我感兴趣的东西受到保护,所以我甚至无法访问它。这是一个摘录:
["table":protected]=> string(5) "users"
["hidden":protected]=> array(1) {
[0]=> string(8) "password"
}
["connection":protected]=> NULL
["primaryKey":protected]=> string(2) "id"
["perPage":protected]=> int(15)
["incrementing"]=> bool(true)
["timestamps"]=> bool(true)
我该怎么办?
答案 0 :(得分:1)
$players->toArray();
会以数组格式给你结果。
答案 1 :(得分:1)
$ players是Laravel系列。你可以迭代它
foreach($players as $player)
{
echo $player->name;
}
您可以使用数组语法
访问唯一项目$player = $players[0];
echo $player->name;
您可以过滤它们
$players = $players->filter(function($item, $key)
{
return $item->name !== 'Bad player";
});
还有更多(包括toArray()
和toJson()
)。
回答你的问题。如果您将其传递给视图,请不要将其变成数组。只需将整个集合作为变量传递,在刀片标记中就可以得到如下内容:
@foreach($players as $player)
<li data-id="{{$player->id}}">{{$player->name}}</li>
@endforeach