我正在使用laravel 4并且不确定最佳实践 - 将Eloquent对象直接传递给视图是一个好主意,还是最好使用toArray
方法在传递它之前?
EG。这样:
public function index()
{
$users = Users::all();
return View::make('users.index', array('users' => $users));
}
或者这个:
public function index()
{
$users = Users::all()->toArray();
return View::make('users.index', array('users' => $users));
}
或其他完全不同的东西?
答案 0 :(得分:1)
我认为当你可以直接将对象传递给视图时,从对象中创建一个数组并将其包装在另一个数组中以传递给视图是一种开销。
尝试
return View::make('users.index')->with('users', $users);
答案 1 :(得分:1)
仅仅将对象发送到对象是完全可以接受的,并且在大多数情况下都是鼓励的。
return View::make('users.index')->with(array('users' => $users));
答案 2 :(得分:1)
您应该使用:
$users = Users::all();
return View::make('users.index')->with(array('users' => $users));
甚至
return View::make('users.index')->with(array('users' => Users::all()));
在这种情况下。
您不需要将对象转换为数组。在您的视图(刀片与否)中,您可以显示对象属性而不是数组元素,这样做非常好。此外,如果您设置了任何内容,也可以使用accessor,如果您将对象转换为数组,则您无法做到这一点