Laravel查询结果受到保护?

时间:2014-07-21 11:20:30

标签: php laravel

我不明白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)

我该怎么办?

2 个答案:

答案 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