表单提交后显示日期字段值

时间:2017-05-02 05:38:33

标签: php forms twitter-bootstrap laravel bootstrap-datepicker

我正在使用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>

2 个答案:

答案 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_dateend_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>

这不是我想要的,但现在确实解决了这个问题。