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