$request->validate([
'email' => 'email'
]);
Это будет всегда проверять, что ключ email
, даже если он пустой, является допустимым форматом email
.
$request->validate([
'email' => 'sometimes|email'
]);
Это только проверит ключ email
, если ключ присутствует в $request->all()
.
Таким образом, разница в том, что с sometimes
вы будете проверять его только в том случае, если объект $request
содержит его, в то время как в противном случае он всегда будет проверяться по ключу.
Если бы я мог упростить это, я бы сказал, что иногда это означает применять остальные правила проверки только в том случае, если поле отображается в запросе. Представьте, что иногда это похоже на оператор if, который проверяет, присутствует ли поле в запросе/вводе, прежде чем применять какое-либо из правил.
Это может быть утомительно, но вот несколько примеров:
input: []
rules: ['email' => 'sometimes|email']
result: pass, the request is empty so sometimes won't apply any of the rules
input: ['email' => '1']
rules: ['email' => 'sometimes|email']
result: fail, the field is present though invalid email so the email rule fails!
input: []
rules: ['email' => 'email']
result: fail, the request is empty so email is invalid!
person
PatricNox
schedule
25.09.2020