Я пытаюсь ограничить обязательный: уникальный валидатор в моем приложении Laravel 5.2 проверкой уникальности моего столбца "slug" только по результатам таблицы определенного user_id. Другими словами, ярлык должен быть уникальным, но только для каждого пользователя. У меня работает функция store() со следующим кодом:
'slug' => 'required|unique:contents,slug,NULL,id,user_id,' . Auth::id()
Это прекрасно работает. Однако я не могу заставить функцию update() работать так же, потому что я не могу заставить валидатор прекратить проверку уникальности по отношению к результату записи, которая в данный момент обновляется. Код, который я сейчас использую:
'slug' => 'required|unique:contents,slug,' . $content->slug . ',id,user_id,' . Auth::id()
Этот код мне не кажется правильным, но я пробовал несколько вариантов, и ни один из них не работает так, как хотелось бы. На мой взгляд, я думаю, что это сработает:
'slug' => 'required|unique:contents,id,' . $content->id . ',user_id,' . Auth::id()
Но это не так. Кто-нибудь знает, в чем моя проблема? Любое руководство будет высоко оценено.
$content->slug
, а не$content->id
? Помимо этой незначительной ошибки, я ожидаю, что второй код будет работать. - person Jonathon   schedule 18.08.2016,id
, возможно, поэтому она не работает. Попробуйте:'required|unique:contents,id,' . $content->id . ',id,user_id,' . Auth::id()
- person Jonathon   schedule 18.08.2016