gpt4 book ai didi

php - 如何防止零作为值记录在数据库中

转载 作者:行者123 更新时间:2023-11-29 05:48:19 27 4
gpt4 key购买 nike

我有一些 ajax 依赖的选择框,其中包含我在注册帐户时用来记录用户地址的省、区和区。

我的看法:

<div class="form-group">
<select class="form-control @error('provinces') is-invalid @enderror" name="address_province" id="provinces">
<option value="0" disable="true" selected="true">Pilih Provinsi</option>
@foreach ($provinces as $province => $value)
<option value="{{$province}}">{{ $value }}</option>
@endforeach
@error('address_province')
<span class="invalid-feedback" role="alert">
<strong>{{$message}}</strong>
</span>
@enderror
</select>

<select class="form-control @error('regencies') is-invalid @enderror" name="address_regency" id="regencies">
<option value="0" disable="true" selected="true">Pilih Kotamadya</option>
@error('address_regency')
<span class="invalid-feedback" role="alert">
<strong>{{$message}}</strong>
</span>
@enderror
</select>

<select class="form-control @error('districts') is-invalid @enderror" name="address_district" id="districts">
<option value="0" disable="true" selected="true">Pilih Kecamatan/Kabupaten</option>
@error('address_district')
<span class="invalid-feedback" role="alert">
<strong>{{$message}}</strong>
</span>
@enderror
</select>
</div>

我的 Controller :

public function storeRegister(Request $request)
{
$this->validate($request, [
'name' => 'required|string|max:255',
'gender' => 'required|string',
'birth_place' => 'required|string',
'birth_date' => 'required|date',
'address_province' => 'required|string',
'address_regency' => 'required|string',
'address_district' => 'required|string',
'specify_address' => 'required|string|max:75',
'email' => 'required|string|email|max:255|unique:users',
'phone_number' => 'required|string|min:9|max:15|unique:users',
]);

$user = new User();

$user->name = $request->get('name');
$user->gender = $request->get('gender');
$user->birth_place = DB::table('provinces')->where('id', $request['birth_place'])->pluck('name');
$user->birth_date = $request->get('birth_date');
$user->address_province = DB::table('provinces')->where('id', $request['address_province'])->pluck('name');
$user->address_regency = DB::table('regencies')->where('id', $request['address_regency'])->pluck('name');
$user->address_district = DB::table('districts')->where('id', $request['address_district'])->pluck('name');
$user->specify_address = $request->get('specify_address');
$user->email = $request->get('email');
$user->phone_number = $request->get('phone_number');

$user->save();

return redirect('/register');
}

这是我的数据库,当用户输入除那些选择框以外的所有内容时

enter image description here

我在我的 postcontroller 中提供了 required 作为过滤器,但它仍然被记录下来,我意识到它不会工作,因为它会给出一个默认值 0!

我可以在我的 Controller 中做一些事情吗?如果我得到 0 值,它会被归类为错误吗?

最佳答案

您可以使用规则

'address_province'  => ['required', Rule::notIn(['','0'])],

不要忘记在 Controller 中使用规则。

use Illuminate\Validation\Rule;

关于php - 如何防止零作为值记录在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57264417/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com