php - 将日期值插入数据库 Laravel
问题描述
我想在数据库中插入一个值的表单上有一个日期字段。我为表单创建了一些错误消息。我正在使用表单请求进行验证逻辑。当我提交表单时,我收到一条关于空日期值的错误消息。我怎么解决这个问题?
谢谢,提前
刀片模板
<form method="POST" action="{{ route('store.education') }}" class="wt-formtheme wt-userform">
<fieldset>
<div class="form-group form-group-half">
<input type="text" name="edu_organisation[]" class="form-control @error('edu_organisation') is-invalid @enderror" id="education_organisation" placeholder="Company Title" data-edu="1"> </div>
<div class="form-group form-group-half">
<input type="date" name="edu_start[]" class="form-control @error('edu_start') is-invalid @enderror" id="education_start" placeholder="Starting Date" data-edu="1"> </div>
<div class="form-group form-group-half">
<input type="date" name="edu_end[]" class="form-control @error('edu_end') is-invalid @enderror" id="education_end" placeholder="Ending Date *" data-edu="1"> </div>
<div class="form-group form-group-half">
<input type="text" name="edu_position[]" class="form-control @error('edu_position') is-invalid @enderror" placeholder="Your Job Title"> </div>
<div class="form-group">
<textarea name="edu_description[]" class="form-control @error('edu_description') is-invalid @enderror" placeholder="Your Job Description"></textarea>
</div>
<div class="form-group"> <span>* Leave ending date empty if its your current job</span> </div>
</fieldset>
</form>
@error('edu_organisation')
<div class="alert alert-danger alert-dismissible fade show">
<span> {{ $message }}</span>
<a href="javascript:void(0)" class="close" data-dismiss="alert" aria-label="Close"><i class="fa fa-close"></i></a>
</div>
@enderror
@error('edu_start')
<div class="alert alert-danger alert-dismissible fade show">
<span> {{ $message }}</span>
<a href="javascript:void(0)" class="close" data-dismiss="alert" aria-label="Close"><i class="fa fa-close"></i></a>
</div>
@enderror
@error('edu_end')
<div class="alert alert-danger alert-dismissible fade show">
<span> {{ $message }}</span>
<a href="javascript:void(0)" class="close" data-dismiss="alert" aria-label="Close"><i class="fa fa-close"></i></a>
</div>
@enderror
@error('edu_position')
<div class="alert alert-danger alert-dismissible fade show">
<span> {{ $message }}</span>
<a href="javascript:void(0)" class="close" data-dismiss="alert" aria-label="Close"><i class="fa fa-close"></i></a>
</div>
@enderror
@error('edu_description')
<div class="alert alert-danger alert-dismissible fade show">
<span> {{ $message }}</span>
<a href="javascript:void(0)" class="close" data-dismiss="alert" aria-label="Close"><i class="fa fa-close"></i></a>
</div>
@enderror
控制器
public function storeEducation(StoreEducationRequest $request)
{
$validated = $request->validated();
for ($i=0; $i <count($validated['edu_organisation']) ; $i++) {
Education::updateOrCreate(
['profile_key' => Auth::user()->profile->key],[
'organisation' => $validated['edu_organisation'][$i],
'start' => $validated['edu_start'][$i],
'end' => $validated['edu_end'][$i],
'position' => $validated['edu_position'][$i],
'description' => $validated['edu_description'][$i]
]);
}
}
表单请求
class StoreEducationRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'edu_organisation' => ['required','array'],
'edu_start' => ['required','array','date'],
'edu_end' => ['required','array','date'],
'edu_position' => ['required','array'],
'edu_description' => ['required','array']
];
}
public function attributes()
{
return [
'edu_organisation' => 'Organisation',
'edu_start' => 'Date of start',
'edu_end' => 'Date of end',
'edu_position' => 'Position',
'edu_description' => 'Description'
];
}
}
架构
public function up()
{
Schema::create('educations', function (Blueprint $table) {
$table->id();
$table->string('profile_key');
$table->string('organisation');
$table->date('start');
$table->date('end');
$table->string('position');
$table->text('description');
$table->foreign('profile_key')->references('key')->on('profiles');
});
}
解决方案
在您的模型中,在varEducation
中设置日期列:dates
class Education extends Model
{
protected $dates = ['start', 'end']
}
在这种情况下,laravel 将支持您的日期。
** 如果仍然无法正常工作,请在此处发布您在服务器中获得的输入以及出现的错误。
推荐阅读
- httpwebresponse - How to fix Veracode error "Server-Side Request Forgery (SSRF)" when using HttpWebResponse?
- android - React-Native Error: Unable to resolve module
- computer-vision - 立体系统中的三角测量导致的深度误差
- html - 至少 3 个单词或更多,但使用阿拉伯语 [HTML 模式]
- python - 在多字串的空格之间添加一个字符
- c - C 一个无符号整数怎么可能只占用两个字节?
- javascript - regex for only lowercase letters and underscore
- javascript - 如何更改图例点的颜色?
- swift - recent messages with firestore - 1 second document write limit - swift
- gridview - Drupal gets HTTP Result Code: 403 when try to change title of view to