我正在使用Bootstrap日期输入来选择表单中的日期。我想在提交表格后保留日期。我开始研究已经过了几天,但到目前为止还没有找到解决方案。在我的项目中,我使用的是Laravel 5.4和日期,我使用的是Carbon。 Laravel的
{{ old('input_date') }}
只是不起作用。如果有人能帮我找到解决方案,我们将不胜感激。
这是我的控制器代码:
public function showMisHistory () {
$mises = '';
return view('uploads.mis_history', [
'mises' => $mises,
]);
}
public function showMisHistoryBetweenDates (Request $request) {
$this->validate($request, [
'start_date' => 'required',
'end_date' => 'required',
]);
$mises = Mis::where('uploader_pin', Auth::user()->pin)->whereBetween('date_of_data_type', array($request->start_date, $request->end_date))->get();
// $mises = Mis::where('uploader_pin', Auth::user()->pin)->get();
$totalLoanAmount = collect($mises)->sum('principal_loan_amount');
$totalPremium = collect($mises)->sum('premium');
$row_number = 1;
return view('uploads.mis_history', [
'mises' => $mises,
'totalLoanAmount' => $totalLoanAmount,
'totalPremium' => $totalPremium,
'row_number' => $row_number,
]);
}
这是我正在使用的形式。
<form action="{{ route('misHistoryBetweenDates') }}" method="POST" class="date-search-form">
{{ csrf_field() }}
<div class="col-md-5">
<div class="form-group">
<label class="col-sm-2 control-label">From</label>
<div class="col-sm-10">
<input type="date" name="start_date" class="form-control" value="{{ old('start_date') }}">
</div>
@if (old('start_date'))
<label class="col-sm-2 control-label"></label>
<div class="col-sm-10">
<span id="helpBlock" class="help-block">{{ old('start_date') }}</span>
</div>
@endif
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label class="col-sm-2 control-label">To</label>
<div class="col-sm-10">
<input type="date" name="end_date" class="form-control" value="{{ old('end_date') }}">
</div>
@if (old('end_date'))
<label class="col-sm-2 control-label"></label>
<div class="col-sm-10">
<span id="helpBlock" class="help-block">{{ old('end_date') }}</span>
</div>
@endif
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="submit" name="submit" class="btn btn-primary">
</div>
</div>
</form>
答案 0 :(得分:1)
您不会返回旧输入。 Laravel需要使用withInput方法返回输入
public function showMisHistoryBetweenDates (Request $request)
{
$this->validate($request, [
'start_date' => 'required',
'end_date' => 'required',
]);
$mises = Mis::where('uploader_pin', Auth::user()->pin)->whereBetween('date_of_data_type', array($request->start_date, $request->end_date))->get();
// $mises = Mis::where('uploader_pin', Auth::user()->pin)->get();
$totalLoanAmount = collect($mises)->sum('principal_loan_amount');
$totalPremium = collect($mises)->sum('premium');
$row_number = 1;
return view('uploads.mis_history', [
'mises' => $mises,
'totalLoanAmount' => $totalLoanAmount,
'totalPremium' => $totalPremium,
'row_number' => $row_number,
])->withInput($request->all());
}
我希望这对你有用。
答案 1 :(得分:1)
我已分别发送start_date
和end_date
来解决问题。这是我做的:
public function showMisHistoryBetweenDates (Request $request) {
$this->validate($request, [
'start_date' => 'required',
'end_date' => 'required',
]);
$start_date = $request->start_date;
$end_date = $request->end_date;
$mises = Mis::where('uploader_pin', Auth::user()->pin)->whereBetween('date_of_data_type', array($request->start_date, $request->end_date))->get();
$totalLoanAmount = collect($mises)->sum('principal_loan_amount');
$totalPremium = collect($mises)->sum('premium');
$row_number = 1;
return view('uploads.mis_history', [
'mises' => $mises,
'totalLoanAmount' => $totalLoanAmount,
'totalPremium' => $totalPremium,
'row_number' => $row_number,
'start_date' => $start_date,
'end_date' => $end_date,
]);
}
在视图中:
<form action="{{ route('misHistoryBetweenDates') }}" method="POST" class="date-search-form">
{{ csrf_field() }}
<div class="col-md-5">
<div class="form-group">
<label class="col-sm-2 control-label">From</label>
<div class="col-sm-10">
<input type="date" name="start_date" class="form-control" value="{{ $start_date }}">
</div>
</div>
</div>
<div class="col-md-5">
<div class="form-group">
<label class="col-sm-2 control-label">To</label>
<div class="col-sm-10">
<input type="date" name="end_date" class="form-control" value="{{ $end_date }}">
</div>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<input type="submit" name="submit" class="btn btn-primary">
</div>
</div>
</form>
这不是我想要的,但现在确实解决了这个问题。