0
我有在laravelLaravel预先加载结果
与预先加载的麻烦我有这些模型:
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);
德结果是正确的十岁上下。我得到了所有的页面数据和1种语言荷兰语(nl)的翻译。但为了从语言数据中得到一个字段,我必须这样做:
$page_data->translations[0]->attributes['content_or_whatever'];
..我觉得这很丑陋。我觉得我应该只需要做这样的事情:
$page_data->translations->content;
..但是这给了我一个错误(试图获得非对象的属性)。
我是否错过了一些东西,或者这只是它的方式?
我与你的答案一致。也许这是一个例子,因为当你制作多种语言的东西时,你不需要所有的语言,只需要用户语言或当前的语言。也许那么“与”方法是不适合的(但..)。代码给了我错误,因为我必须循环关系数据,我想是因为“has_many” - 关系。 (我对Laravel相当陌生,所以我可能会对此有点失望。)无论如何,感谢您的帮助! – Meddie
很高兴帮助 - 我希望它实际上可以与你的例子一起工作。 – kJamesy