【发布时间】:2013-05-28 07:26:40
【问题描述】:
我在 laravel 中急切加载时遇到问题
我有这些模型:
class Page extends Eloquent {
public function translations() {
return $this->has_many('Pagestl', 'page_id');
}
}
和
class Pagestl extends Eloquent {
public static $table = 'pages_tl';
public function page() {
return $this->belongs_to('Page', 'id');
}
}
我想要一个包含特定语言翻译数据的特定页面。 我这样检索数据:
$page_data = Page::with(array('translations' => function($query) {
$query->where('lang_id', '=', 'nl')->first();
}))->find($id);
结果还可以。我得到了所有的页面数据和一种语言的翻译,荷兰语(nl)。但是为了从语言数据中获取一个字段,我必须这样做:
$page_data->translations[0]->attributes['content_or_whatever'];
..我觉得很难看。我觉得我应该只需要做类似的事情:
$page_data->translations->content;
..但这给了我一个错误(尝试获取非对象的属性)。
是我遗漏了什么还是事情就是这样?
【问题讨论】:
标签: laravel eager-loading laravel-3