php - 0 字段是必需的。Laravel 5.5 验证错误
问题描述
我有一个“需要 0 字段”。当我没有名为 0 的字段时,尝试将数据保存到数据库时出错。没有来自控制器的验证,数据会保存,但如果我只验证要验证的六个字段中的一个字段,我仍然会收到错误消息。我该如何解决这个问题。请帮忙看看这是我的看法
<form method="post" action="{{ url('agent/add_tenantProperty') }}" data-toggle="validator">
{{ csrf_field() }}
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="txtMovieTitle">Tenant</label>
<select id="ddlGenge" class="form-control" name="tenant_id" required="">
@foreach($tenants as $tenant)
<option value="{{ $tenant->id }}">
{{ $tenant->designation }} {{ $tenant->firstname }} {{ $tenant->lastname }}
</option>
@endforeach
</select>
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="ddlGenge">Asset Category</label>
<select id="ddlGenge" class="form-control" name="asset_id" required="">
<option>Choose a Property</option>
@foreach($assets as $asset)
<option value="{{ $asset->id }}">{{ $asset->category }}</option>
@endforeach
</select>
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="txtDirector">Asset description</label>
<select id="ddlGenge" class="form-control" name="description" required="">
<option>Choose a Description</option>
@foreach($assets as $asset)
<option value="{{ $asset->description }}">{{ $asset->description }}</option>
@endforeach
</select>
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="txtProducer">Location</label>
<select id="ddlGenge" class="form-control" name="address" required="">
<option>Choose an Address</option>
@foreach($assets as $asset)
<option value="{{ $asset->address }}">{{ $asset->address }}</option>
@endforeach
</select>
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="txtWebsite">Standard price</label>
<input id="txtWebsite" type="text" class="form-control" name="price" required="">
<div class="help-block with-errors"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="txtWriter">Date</label>
<input id="txtWriter" type="date" class="datepicker form-control" name="occupation_date"
required="">
<div class="help-block with-errors"></div>
</div>
</div>
</div>
<button type="submit" class="btn btn-outline btn-primary pull-right">Submit</button>
<br/>
</form>
和我的控制器
public function store(Request $request)
{
//validation
$this->validate($request, array([
'tenant_id' => 'required',
'asset_id' => 'required',
'description' => 'required',
'address' => 'required',
'price' => 'required',
'occupation_date' => 'required',
]));
//create and save new data
$tenantProperty = New TenantProperty();
$tenantProperty->tenant_id = $request->tenant_id;
$tenantProperty->asset_id = $request->asset_id;
$tenantProperty->description = $request->description;
$tenantProperty->address = $request->address;
$tenantProperty->price = $request->price;
$tenantProperty->occupation_date = $request->occupation_date;
$tenantProperty->save();
//redirect
return redirect('agent/tenantProperty_list');
}
路线如下
Route::get('add_tenantProperty', 'TenantPropertyController@create')->name('/add_tenantProperty');
Route::post('add_tenantProperty', 'TenantPropertyController@store');
解决方案
当您编写$request
时,它会传递整个请求对象,但 validate 函数期望两个参数都是数组。
所以做一点改变,你会很高兴:
$this->validate($request, array( // Removed `[]` from the array.
'tenant_id' => 'required',
'asset_id' => 'required',
'description' => 'required',
'address' => 'required',
'price' => 'required',
'occupation_date' => 'required',
));
推荐阅读
- javascript - H1 标签不会只加载到我的页面上的 javascript 部分,这是为什么呢?
- c# - 在 asp.net 的 web.config 中将基于角色的身份验证设置为 defaultUrl
- jquery - 如何将 jquery 代码转换为 Angular 4?
- c# - 如何从其他函数访问变量?
- css - 将 div 放入固定位置 woocommerce
- android - 如何将 Sqlite 数据库文件插入 Android 并使用 Kotlin 读取?
- java - Manifest.permission.CAMERA 出错
- c++ - 如何在没有 Visual Studio 的 Windows 上在 cmd 中编译和运行 C/C++ MPI 代码
- android - 来自 AlarmManager 的 PendingIntent 未激活
- lua - (错误)ERR错误编译脚本(新功能):user_script:2:'='预期在'local'附近