Я пытаюсь установить полиморфные отношения в Laravel 4, чтобы у меня был один класс Image, который обрабатывает все, что связано с загрузкой, отключает и т. Д., А затем использовать его несколькими разные модели. Все в порядке, пока я не попытаюсь создать несколько ссылок из одной и той же модели.Laravel 4, множественные полиморфные отношения от одной модели
Например, я в настоящее время есть что-то вроде этого:
Модели/image.php
class Image extends Eloquent {
public function of() { return $this->morphTo(); }
}
Модели/Person.php
class Person extends Eloquent {
public function mugshot() { return $this->morphOne('Image', 'of'); }
public function photos() { return $this->morphMany('Image', 'of'); }
}
Модели/Place.php
class Place extends Eloquent {
public function photos() { return $this->morphMany('Image', 'of'); }
}
Здесь, Человек может загрузить один mugshot
и многие photos
, а на месте может быть много photos
. Проблема заключается в том, что когда я создаю mugshot
на человека, он сохраняет это в images
таблицы в базе данных:
id: 1
of_id: 1
of_type: Person
Он не хранит тот факт, что это mugshot
и не photo
, поэтому, когда я пойдите, чтобы восстановить его, $person->mugshot
может иногда возвращать один из $person->photos
и наоборот.
Есть ли (a) лучший способ сделать это, чем создать 2 ссылки на одной и той же модели, или (б) способ сделать так, чтобы этот способ работал?
Могу ли я спросить, как ваши данные отношения базового стола выглядят? Я думаю, что у меня есть аналогичный случай, но не знаю, как настроить отношения для использования morphOne() – moleculezz