2015-12-08 2 views
0

Я пытаюсь получить правильную дату, возвращенную для отношения hasMany. Разница между «нормальными» hasMany отношениями заключается в том, что я пытаюсь использовать 1 таблицу, которая может использоваться несколькими моделями.Laravel 5.1 - hasMany отношение для нескольких полей внутри одной таблицы

У меня есть установки как таковой (с некоторыми более полей, но не важно, например)

новости:

  • ID
  • название
  • тело

проект:

  • идентификатор
  • название
  • тела

СМИ:

  • идентификатор
  • файл
  • тип (перечисление проекта/Новости)
  • TYPE_ID

я получаю результаты следующее в моих моделях:

public function media() 
{ 
    return $this->hasMany('App\Media','type_id'); 
} 

И получать результаты с:

->with('media') 

Но когда у меня есть новость с тем же идентификатором, как проект этого вернет неверные данные назад. Есть ли способ, в красноречивом, также установить тип = проект || новости в модели Project и News?

ответ

2

Возможно, вы хотите получить полиморфные отношения. Он будет управлять полем type и id и основывать на них запросы.

Eloquent Relationships - Polymorphic

+0

Спасибо! Это то, что мне нужно. – jvv