我正在使用 Laravel 嵌套资源来服务于多对多关系。我正在开发一个足球应用程序,我想将比赛与赛季联系起来,例如英超联赛与 2021/22 赛季。
我想要实现的是有一条专门的路线来管理这种关系,而季节是比赛的子资源。
我的实体在数据库级别有一个自动生成的整数 ID,但我使用getRouteKeyName()
将 slug 定义为 Laravel 用于隐式模型绑定的字段。
现在,在比赛下发布新赛季时,我正在努力进行验证。请求如下所示:
POST /api/competitions/premier-league/seasons/
{
"season": "21-22",
...
}
值“21-22”是 Season 对象的实际 slug,但我无法在关联表中使用它进行验证,因为其中的外键使用自动生成的外键,而不是我用于隐式的列模型绑定。
为了澄清,表格如下所示:
seasons competition_editions competitions
id slug id comp season id slug
X 21-22 Z Y X Y premier-league
有没有办法让 FormRequest 的唯一规则与模型绑定键一起工作,这样我就不必手动将 slug 转换为控制器内资源的实际 id?
谢谢!