2016-06-16 12 views
0

я нужна ваша помощь ,,, на что короче (видео, сообщение, пользователь) я хочу использовать эти три модели, чтобы сделать следующее:какая версия laravel Полиморфные отношения использовать?

сделать пользователь (любимый или комментарий) на любом (видео или запись) , что является правильным для данной ситуации (нормальные полиморфный или многих -в -many полиморфных)

любого предложения для этого, пожалуйста,

ответ

2

Вы бы использовать обычный Полиморфную для обоего.

Идея заключается в том, что пользователь может в избранные, Post или Video - однако эти любимые действия являются уникальными для соответствующего Post или Video. Вы не могли бы любить два отдельных объекта в одном действии - было бы два уникальных фаворита (один для первого объекта и один для второго объекта).

То же самое относится и к комментариям. Вы можете прокомментировать несколько объектов, но каждый комментарий будет уникальным для этого объекта.

Использование прецедента для полиморфного отношения «много-ко многим» проще всего объяснить концепцией , помеченной объектом.

Вы могли бы Tag объект с чем-то вроде «PHP» - вы также могли бы Tag еще один объект с «PHP». Таким образом, Tag имеет отношение «многие ко многим» и может быть помечено на несколько отдельных моделей. Это то, что делает его полиморфным.

Итак, поскольку Favorite и Comment привязаны только к одному экземпляру объекта, то это нормальное полиморфное отношение.

Смежные вопросы