соглашение об именах с Laravel с двойными морфными отношениями - PullRequest
0 голосов
/ 04 мая 2020

Что такое правильное соглашение об именах в Laravels, когда у вас есть 2 морфных отношения на 1 таблице (модель)?

Пример:

posts
    id - integer
    title - string
    body - text

videos
    id - integer
    title - string
    url - string

buyers
    id - integer
    name - string

sellers
    id - integer
    name - string

comments
    id - integer
    body - text
    commentable1_id - integer // link to video/posts
    commentable1_type - string // type link to video/posts
    commentable2_id - integer // link to buyers/sellers
    commentable2_type - string // type link to buyers/sellers

Теперь я использую namme commentable1 и commentable2, но это не очень хороший Laravel способ. Как я могу сделать это правильным Laravel способом?

1 Ответ

0 голосов
/ 04 мая 2020

Это будет больше о личных предпочтениях, я думаю, если я буду делать, я сделаю это как

commentable1_id would be video_post_id
commentable1_type would be video_post_type
commentable2_id would be buyer_seller_id
commentable2_type would be buyer_seller_type

И это может отличаться для другого человека, но для меня, это само объяснимо так что я буду использовать это. Учитывая, что вы сохраните свои основные названия моделей постоянными, если вы их измените, они будут соответственно изменяться.

Если вы хотите соответствовать laravel стандарту.

, например, ваши видео принадлежат чтобы публиковать сообщения, имя столбца будет просто videoable_type, и соответственно два других столбца будут videoable_id, sellerable_id и sellerable_type.

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...