我目前正在参加锦标赛组织项目,我想了解同一模型的最佳技术,例如我有一个名为matches
的模型,而不是检索与matches
相关的数据,但这些matches
可能有不同的类型,具体取决于match_type
模型中指定的matches
字段,我所做的是创建父类/Match
,并且具有不同类型的匹配扩展此父类。例如:
Class SinglElimination/Match extends /Match{}
Class GroupStage/Match extends /Match{}
所以使用这个设计我必须先得到父匹配才能获得match_type
,然后重新运行查询以获得与所需子模型的匹配
$match=Match::find($id);
$type = $match->match_type;
$childMatch = new $match_type.'/Match'();
$match = $match->where('_id', $this->_id)->first();
我知道它远不是干净的,所以你会如何实现呢?
答案 0 :(得分:1)
如果我是你,我会分开这三个类并排除任何扩展。请查看Polymorphic
中的Laravel
关系,此处为quick link。这将是cleaner
方法,在我看来,这将是最好的方法,您只需要正确设计tables
并正确地relationships
。