编辑:
您的解决方案适用于文本输入和文本区域,但复选框对我来说无法正常工作。
这是我原来的复选框:
{{ Form::checkbox('active', true, (isset($user->active)) ? old($user->active) : true, ['class' => 'custom-control-input', 'id' => 'active']) }}
我已经尝试了很多可能的解决方案,例如添加old('active', isset($user) ? $user->active: true),但是当发生错误时,我会丢失此输入中的值。在控制器上,我正在检查这一点,但是如果我将输入更改为“新解决方案”,则在我的数据库上活动始终为 false:
if(!array_key_exists('active', $validated)){
$validated = array_add($validated, 'active', '0');
}
原始问题(部分解决):
我有一个刀片视图调用编辑两种形式 ,但每个形式都调用自己的方法/路线。一种表单用于编辑/存储用户,另一种表单是模式中的用于更改用户密码的表单。当我更改密码并且没有发生验证错误时,另一个表单仍然具有通过索引方法从old()或 $user 变量获取的所有值。但是,例如,如果密码不匹配,则会发生验证错误,并且编辑/存储用户表单中的值会消失。
表单非常简单(请记住,它们位于同一视图上,给我带来问题的是编辑/创建表单),并且每个表单都从UserController调用不同的方法
编辑用户表格1(简化)
@if($user->exists)
{{ Form::model($user, ['route' => ['users.update', $user], 'class' => 'needs-validation', 'novalidate'=>'']) }}
@method('PATCH')
@else
{{ Form::model($user, ['route' => ['users.store'], 'class' => 'needs-validation', 'novalidate'=>'']) }}
@method('POST')
@endif
@csrf
<div class="form-group">
<div class="row">
<div class="col-sm-4">
{{ Form::label('cif', __('users.cif'), ['class' => 'form-label']) }}
{{ Form::text('cif', (isset($user->cif)) ? old($user->cif) : '', ['class' => 'form-control', 'required','maxlength'=>'12', 'minlength'=>'9']) }}
{{ Form::hidden('validate','', ['class' => 'form-control', 'required', 'id'=>'validate']) }}
</div>
<div class="col-sm-6">
{{ Form::label('name', __('users.name'), ['class' => 'form-label']) }}
{{ Form::text('name', (isset($user->name)) ? old($user->name) : '', ['class' => 'form-control','required','maxlength'=>'255']) }}
</div>
<div class="col-sm-2">
{{ Form::label('initials', __('users.initials'), ['class' => 'form-label']) }}
{{ Form::text('initials', (isset($user->initials)) ? old($user->initials) : '', ['class' => 'form-control', 'required','maxlength'=>'5']) }}
</div>
</div>
aluckdog
翻过高山走不出你