2014-02-15 7 views
0

У меня есть небольшая проблема с Laravel. Я совершенно новичок в этом, и я пытаюсь создать многоязычную модель для некоторого контента, который у меня есть.Laravel hasOne не вызывает никакого запроса sql

Это моя конфигурация:

База данных:

Таблица Appartements: 1 Идентификатор INT (10) 2 адрес VARCHAR (255)
3 почтовый индекс INT (11) 4 города VARCHAR (255)
5 страна VARCHAR (255)
6 created_at метка времени 7 updated_at метки времени

Таблица appartement_langs 1 Идентификатор INT (10)
2 LANGUAGE_ID INT (11) 3 appartement_id INT (11) 4 Название VARCHAR (255)
5 VARCHAR субтитров (255) 6 текстовое описание
7 created_at временную метку 8 updated_at временной метки

языков Таблица 1 идентификатор INT (10)
2 локаль VARCHAR (255)
3 created_at временной метки
4 updated_at метку времени

Так что в основном у меня есть язык_ид и appartement_id.

В моей Appartement модели у меня есть следующие:

<?php 

    class Appartement extends Eloquent { 
     protected $guarded = array(); 

     public static $rules = array(); 

     public function gallery() 
     { 
      return $this->hasMany('Gallery'); 
     } 

     public function languages() 
     { 
      return $this->hasMany('AppartementLang', 'language_id'); 
     } 

     public function lang() 
     { 
      return $this->hasOne('AppartementLang'); 
     } 
    } 

Когда я пытаюсь получить поле $ appartement-> Ланг() -> название я не получаю ничего.

Не могли бы вы дать мне подсказку? Потому что я действительно не знаю, как с этим справиться :).

Большое спасибо.

ответ

3

При использовании lang() вы фактически возвращая запрос частично построен (так что вы можете добавить в других условиях, и т.д ..)

Если вы хотите получить языковую модель, вы должны использовать только lang.

Итак:

$appartement->lang->title 

Если вы var_dump()lang() вы увидите сами.

В Laravel documentation вы будете видеть их пример отношения звонки:

$phone = User::find(1)->phone; 
Смежные вопросы