【发布时间】:2014-03-05 21:40:03
【问题描述】:
我正在尝试使用 Laravel 4.1 并使用一对多关系进行 Eloquent Eager Load。一切似乎都可以正常工作:
$groups = Group::with(array('points' => function($query) {
$query->orderBy('pts', 'DESC');
}))->get();
但是当我尝试读取属性时...
foreach( $groups as $group ) {
echo var_dump($group->points);
}
它返回对象的 JSON 字符串(其中包含正确的数据)
我应该怎么做才能获取 PHP 对象而不是 JSON?
编辑: 这是我的模型
class Group extends Eloquent
{
public $timestamps = true;
public function points() {
return $this->hasMany('Point');
}
}
.
class Point extends Eloquent
{
public function group() {
return $this->belongsTo('Group');
}
}
【问题讨论】:
-
你试过
json_decode()函数吗? -
我做到了,但是那样它就失去了 Laravel 的所有功能,它只是一个定义了属性的对象。不是 Eloquent ORM 实例。我想我一定是做错了什么,或者应该有办法获取 Eloquent 对象而不是 JSON 字符串。
-
试试
var_export($group->points)。 -
问题不在于 var_dump,但您的建议帮助我了解如何正确显示它。谢谢。
-
Laravel 提供了一个
dd()(dump&die) 辅助函数来调试,如果打印或返回任何 Eloquent 对象,Laravel将其转换为json字符串。
标签: php json orm laravel eloquent