我有一個很長很複雜的表單,有幾個'條件'字段 - 字段B只顯示字段A是否標記爲'是'。Laravel 4:訪問來自重定向的值' - > withInput()'
這裏的HTML:
<div class="{{ $errors->has('happy') ? ' has-error' : false }}">
{{Form::label('happy', 'Are you happy?')}}
{{Form::select('happy', array('' => '--', 'Yes' => 'Yes', 'No' => 'No'),(!empty($input['happy']) ? $input['happy'] : null), ['class'=>'dependent']);}}
</div>
<div class="{{ !empty($input['happy']) && $input['happy'] == 'Yes' ? null : 'hidden'}} dependent" data-dependent-field="happy" data-dependent-value="Yes">
{{Form::label('second-field', 'Only asked if you\'re happy')}}
{{Form::textarea('second-field',!empty($input['second-field']) ? $input['second-field'] : null)}}
</div>
的問題是,如果有第二場驗證錯誤,原始輸入不被認可時提交表單,並仍在增加了hidden
類到第二組字段。
{{ !empty($input['happy']) && $input['happy'] == 'Yes' ? null : 'hidden'}}
該代碼在重新載入帶有要編輯的數據的表單時起作用,但當驗證錯誤正在發送時不起作用。驗證碼看起來像這樣:
if($validation->fails()){
return Redirect::back()->withInput()->withErrors($validation->errors())->with(['flash_message'=>'Please check your inputs again.']);
}
我猜我沒有正確引用返回數據,但無法弄清楚我哪裏出錯了。
我已經使用jQuery來擴展字段,當輸入發生變化時,但是在驗證錯誤後重新加載時,這並不關心字段。
編輯更多CLAIRTY:
下面是一個例子。如果我選擇是,但將「爲什麼」答案留空並且它是必填字段,則當Laravel執行back()->withErrors()
位時,文本區域不顯示在屏幕上。
<div class="row {{ $errors->has('happy') ? ' has-error' : false }}">
{{Form::label('happy', 'Field Label', ['class'=>'span12'])}}
<div class="span3">
{{Form::select('happy', array('' => '--', 'Yes' => 'Yes', 'No' => 'No'),(!empty($input['happy']) ? $input['happy'] : null), ['class'=>'dependent']);}}
</div>
</div>
<div class="row">
<div class="span12">
<div class="{{ !empty($input['happy']) && $input['happy'] == 'No' ? null : 'hidden'}} dependent" data-dependent-field="happy" data-dependent-value="No">
<div {{ $errors->has('why-not-happy') ? ' has-error' : false }}">
{{Form::label('why-not-happy', 'Why aren\'nt you happy?')}}
{{Form::textarea('why-not-happy',!empty($input['why-not-happy']) ? $input['why-not-happy'] : null)}}
</div>
</div>
</div>
</div>
你能告訴我在接受表格值的控制器中的功能嗎? – Vagabond