我试图提交条目到数据库与自动过期日期计算+1周后创建日期。问题是,我不知道如何添加我在存储控制器中与创建表单上的输入一起创建的变量。
这是我创建的表单:
<div class="container-fluid">
<!-- Page Heading -->
<h1 class="h3 mb-2 text-gray-800">Pasien Baru</h1>
<p class="mb-4">Konfigurasi untuk mendaftarkan pasien</p>
<div>
<form method="post" action="/dashboard/pasien" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="nik">NIK Pasien</label>
<input maxlength="16" type="text" class="form-control @error('nik') is-invalid @enderror" id="nik" name="nik" placeholder="Nomor Induk Kependudukan">
@error ('nik')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="name">Nama Pasien</label>
<input type="text" class="form-control @error('name') is-invalid @enderror" id="name" name="name" placeholder="Nama Lengkap">
@error ('name')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="lahir">Tanggal Lahir</label>
<input type="date" class="form-control @error('lahir') is-invalid @enderror" id="lahir" name="lahir">
@error ('lahir')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="kelamin">Jenis Kelamin</label><br>
<select class="form-select" name="kelamin" style="width: 200px">
<option selected value="pasien">Laki-laki</option>
<option value="admin">Perempuan</option>
</select>
@error ('kelamin')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="poli">Layanan</label><br>
<select class="form-select" name="poli" style="width: 200px">
@foreach ($layanan as $poli)
<option value="{{ $poli->singkatan }}">{{ $poli->jenis }}</option>
@endforeach
</select>
@error ('poli')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="bayar">Jenis Pembayaran</label><br>
<select class="form-select" name="bayar" style="width: 200px">
<option selected value="umum">Umum</option>
<option value="bpjs">BPJS Kesehatan</option>
<option value="kis">JKN-KIS</option>
</select>
@error ('bayar')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group col-md-6">
</div>
<button type="submit" class="btn btn-primary mt-4">Daftarkan</button>
</form>
<a href="/dashboard/pasien/" class="mt-3 btn btn-danger">Batal</a>
</div>
</div>
这是我的laravel store控制器。$expiry_day工作得很好,但我不知道如何在创建方法中添加它。我想让$expiry_day变成'expired'值:
public function store(Request $request)
{
$start_day = Carbon::parse($request->created_at);
$expiry_day = $start_day->addWeek();
$validateData = $request->validate([
'nik' => 'required',
'name' => 'required',
'kelamin' => 'required',
'lahir' => 'required',
'bayar' => 'required',
'expired' => 'required',
'poli' => 'required',
]);
pasien::create($validateData);
return redirect('/dashboard/pasien')->with('success','Data pasien berhasil ditambahkan');
}
您可以简单地将日期添加到验证过的数据数组中。这将在您创建模型时插入。
$validatedData = $request->validate([...]);
$start_day = Carbon::parse($request->created_at);
$validatedData['expired'] = $start_day->addWeek();
pasien::create($validateData);
这要求expired
是数据库中的一列,并且在Pasien
模型的可填充数组中。
附加说明:请不要用小写字母调用类,普遍认为类以大写字母开头。
Pasien::create($validateData);