Итак, у меня есть этот простой код для ввода значения на основе значения базы данных в регистрационной форме, и он отлично работает,
Код ниже расположен по адресу register.blade.php
Это для выбора ответвления
<div class="form-group form-material floating">
<select class="form-control" name="branch" id="branch">
<option value="1">Option A</option>
<option value="2">Option B</option>
</select>
<label class="floating-label" for="inputStatus">Branch</label>
</div>
Это для ввода ссылочного
<div class="form-group form-material floating {{ $errors->has('reference') ? ' has-error' : '' }}">
<input type="text" class="form-control empty" id="reference" name="reference">
<label class="floating-label" for="inputStatus">Reference</label>
@if ($errors->has('reference'))
<span class="help-block">
<strong>{{ $errors->first('reference') }}</strong>
</span>
@endif
</div>
кода ниже, расположенного по адресу RegisterController.php
И этот для проверки
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'phone' => 'required|string|min:5|max:20',
'rate' => 'required',
'product' => 'required',
'branch' => 'required',
'reference' => [
'required',
Rule::exists('references')->where(function ($query) {
if( 'branch' == 1 ){
$query->where('references.type', '=', "TOP");
}
else{
$query->where('references.type', '=', "BOTTOM");
}
}),
],
]
);
}
В регистрационной форме, когда пользователь выбирает первый вариант на ветке, пользователь может писать только (Пример: 'AB C ',' DEF ',' GHI '), если пользователь напишет другое значение, он вернет сообщение об ошибке: «Неверный ссылочный код», но когда пользователь выберет вторую опцию в ветви, пользователь сможет только написать (пример: «123») , '456', '789'), есть у кого-нибудь и идея, как это сделать? Спасибо
Редактировать 1: приведенный выше код работает нормально, но существующее правило для справки не работает, пользователь по-прежнему может вводить «AB C», «DEF» или «GHI» при выборе второго варианта .
Редактировать 2: У меня также есть эта пользовательская проверка внутри register.blade.php
fields: {
reference: {
validators: {
notEmpty: {
message: 'Reference must be filled'
},
stringLength: {
max: 8,
message: 'Max 8 character'
}
}
}
}