У меня есть система Users, которая позволяет создавать учетные записи, входить и выходить из системы.
В настоящее время я работаю над редактированием профиля, который позволяет редактировать полное имя, имя пользователя и т. Д.
Для этой процедуры я бы хотел, чтобы пароль не требовался, однако он должен быть обязательным для процедур создания и входа в систему.
Есть ли способ поддержать это в Laravel?
Я думал об обнаружении присутствия Input :: get (‘password’) и, если нет, проходя через оригинальный пароль, однако, это повторно хэш
Итак, подведем итог: я хотел бы, чтобы поле пароля было обязательным при создании, а не при процедурах обновления. В качестве альтернативы, если есть другой способ достичь той же цели, тогда я открыт для этого.
Для справки я использую JeffreyWay / Laravel-Model-валидаторы который обрабатывает проверку в рамках процедуры сохранения.
Вероятно, вы не можете сделать это с помощью этого пакета. Однако вы можете создать такую функциональность вручную, например, создав 2 метода, которые выбирают обязательные поля для проверки, часть User
учебный класс:
protected static $rules
= [
'name' => 'required|min:3|max:60',
'password' => [
'required',
'min:10'
],
];public static function validateRegistration($data, $translation)
{
return self::validate($data, $translation);
}
public static function validateUpdate($data, $translation)
{
$rules = self::$rules;
if (trim($data['password']) == '') {
unset($rules['password']); // unsetting unwanted password rule
}
return self::validate($data, $translation, $rules);
}
public static function validate($data, $translation, $rules = null)
{
if (is_null($rules)) {
$rules = self::$rules;
}
$v = Validator::make($data, $rules, $translation);
if ($v->fails()) {
self::$errors = $v->messages()->toArray();
return false;
}
return true;
}
Других решений пока нет …