我在 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;
..但这给了我一个错误(尝试获取非对象的属性)。
我错过了什么还是这就是它的方式?