На основе документации . Существующие могут иметь 4 параметра:
exists:table,id,where,0
Вопрос в том, что, если бы я хотел, чтобы это было, где нет. Как и где нет 0.
$validator = Validator::make( array( 'groups' => $groups ), array( 'groups' => 'required|exists:groups,jid,parent,!=,0' ) );
Вы можете использовать что-то вроде этого:
Validator::extend('not_exists', function($attribute, $value, $parameters) { return DB::table($parameters[0]) ->where($parameters[1], '=', $value) ->andWhere($parameters[2], '<>', $value) ->count()<1; });
Вы можете использовать unique
пример
'email' => 'unique:users,email_address,NULL,id,account_id,1'
В приведенном выше правиле в уникальную проверку будут включены только строки с идентификатором account_id из 1.
С Laravel 5.2 или более поздней версией вы можете добавить значения, которые нужно проверить, с помощью !
:
'groups' => 'required|exists:groups,jid,parent,!0'
Тот же логин используется для unique
, только вам нужны дополнительные параметры:
'groups' => 'required|unique:groups,jid,NULL,id,parent,!0'
Я знаю, что вы ищете «не 0», но для справки, вы можете использовать NOT_NULL
, как в:
'groups' => 'required|exists:groups,jid,parent,NOT_NULL'
Он не указан в документах прямо сейчас, но вот обсуждение этого вопроса (см. Последнее сообщение)
возможно, вы можете попробовать <> 0
, это SQL для не равных