我有2个数据库模型,都有一个URL字段,因此您可以访问它们。在前端,我会做这样的事情来访问它:
/{{ $parent->url }}/{{ $child->url }}
验证父URL很简单,我只是确保它对于该表是必需的和唯一的。但孩子有点慌张。我需要URL是唯一的,但前提是记录共享同一个父级。目前,我创建新记录的验证规则是:
'url' => 'required|alpha_dash|unique:child_table,url',
并更新:
'url' => 'required|alpha_dash|unique:child_table,url,' . $id,
但这意味着每个网址必须是唯一的,我宁愿不执行该规则。我知道父记录ID,所以有没有办法说URL必须是唯一的,但仅限于具有此父ID的记录?
绝对清楚,这是不允许的:
/parent1/child1
/parent1/child1
但这是:
/parent1/child1
/parent2/child1
答案 0 :(得分:2)
这样的事情可以帮助你实现这一目标:
.has-subsegments
答案 1 :(得分:0)
如果有人需要,它最终会变得更加复杂:
'url' => ['required', 'alpha_dash', Rule::unique('child_table', 'url')->where(function($query) use ($parentId) {
return $query->where('parentId', '=', $parentId);
})],