Laravel 8 独特的表单验证忽略
Laravel 8 Unique form validation ignore
我的表单编辑
<form action="{{ route('admin.akun.update', $akun->id_pegawai) }}" method="POST">
@csrf
@method('patch')
<input type="text" class="form-control" @if (old('nip')) value="{{old('nip')}}" @else value="{{$akun->nip}}" @endif name="nip">
我的路线
Route::patch('admin/akun/{id_pegawai}', 'AkunController@update')->name('admin.akun.update');
我的控制器
public function update(Request $req, $id_pegawai)
{
$user = new User;
$pegawai = new Pegawai;
$this->validate($req, [
'nip' => ["required", "unique:users,nip," . $id_pegawai],
]);
}
条件:我编辑我的数据,我有一个唯一字段,如果我不更改唯一字段将成功编辑,如果我用相同的数据替换它会有一个提示
这样试试:
["required", "unique:users,nip,".$id_pegawai]
文档:https://laravel.com/docs/8.x/validation#rule-unique
语法:unique:table、column、except、id Column
您需要指定要针对哪一列进行唯一处理
Rule::unique('users', 'nip')->ignore($id_pegawai, 'id_pegawai'),
我的表单编辑
<form action="{{ route('admin.akun.update', $akun->id_pegawai) }}" method="POST">
@csrf
@method('patch')
<input type="text" class="form-control" @if (old('nip')) value="{{old('nip')}}" @else value="{{$akun->nip}}" @endif name="nip">
我的路线
Route::patch('admin/akun/{id_pegawai}', 'AkunController@update')->name('admin.akun.update');
我的控制器
public function update(Request $req, $id_pegawai)
{
$user = new User;
$pegawai = new Pegawai;
$this->validate($req, [
'nip' => ["required", "unique:users,nip," . $id_pegawai],
]);
}
条件:我编辑我的数据,我有一个唯一字段,如果我不更改唯一字段将成功编辑,如果我用相同的数据替换它会有一个提示
这样试试:
["required", "unique:users,nip,".$id_pegawai]
文档:https://laravel.com/docs/8.x/validation#rule-unique
语法:unique:table、column、except、id Column
您需要指定要针对哪一列进行唯一处理
Rule::unique('users', 'nip')->ignore($id_pegawai, 'id_pegawai'),