我有一个要验证的元素数组,此数组具有这种形式
{
"slugs" : {
1 : "prueba",
2 : "test"
}
塞子是输入<input name="slugs[{{ $lang->id }}]">
,数字是语言1 = spanish / 2 = english
的ID。
我想要的是在这样的表单请求中验证这些字段的唯一性
public function rules()
{
$rules = [
//
'slugs.*' => Rule::unique('translation_entries')->where(function($query) {
//here i want to access the * that represent the lang id
//like this $query->where('lang_id','=',$query->*);
})
];
}
我可以在唯一的Rule类中访问索引*
吗?
答案 0 :(得分:0)
只要您使用Laravel> = 5.5,就可以使用closure
'slugs.*' => [
function ($attribute, $value, $fail) {
$id = str_after($attribute, '.');
if (\DB::table('translation_entries')->where('lang_id', $id)->where('slug', $value)->exists()) {
$fail('The slug has already been taken.');
}
},
],
将'slug'
更改为translation_entries
表上的列名(如果有)。