在1个表(模型)上具有2个变形关系时,Laravels中的正确命名约定是什么?
示例:
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方法做到这一点?
答案 0 :(得分:0)
我想这将更多地取决于个人喜好,如果我愿意的话,我会这样做的
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
和{{1 }}。