創建形式陣列在Laravel 4我可以用這樣的代碼創建文本輸入:與Laravel 4
{{ Form::text('title', '', ['placeholder' => 'Ex. title', 'id' => 'title']) }}
這是非常有用的,因爲如果我的窗體的其他領域驗證失敗,我可以做...
return Redirect::back()->withErrors($validator)->withInput(Input::all());
當再次顯示錶單,字段title
將節省那是以前提交的值。
好東西。
現在這裏是我的問題:輸入數組?
我增加了以下輸入字段我的表格:
<input type="text" name="option[]" />
<input type="text" name="option[]" />
<input type="text" name="option[]" />
<input type="text" name="option[]" />
我提交表單,明知會失敗,看看,當形式再次出現,對這些字段的值仍然存在。相反,拉拉維爾拋出了一個例外。
ErrorException
htmlentities() expects parameter 1 to be string, array given
即使我剛1個選項,它仍然給了我同樣的錯誤:
{{ Form::text('option[]') }}
現在,我知道我可以手動處理陣列選項的填充,也許像這個:
$options = Input::get('option');
return Redirect::back()
->withErrors($validator)
->withInput(Input::except('option'))
->with('options', $options);
然後只是循環訪問刀片模板上的$ option數組。
是的,這可能會起作用。但這有點不好意思,它仍然錯過了Laravel在失敗提交後自動填充字段的強大工作流程,就像我回到title
一樣。所以我的問題是:
在這些情況下,Laravel 4有沒有內置的方法來處理輸入數組?
'我試圖做到這一點,我得到這個error'你是怎麼試試到底是什麼?我可以看到預期的輸出結果,但您是如何嘗試並實施它的? –
正如書面。我添加了一組文本字段,它們是數組「選項[]」,並且在對「返回Redirect :: back() - > withErrors($ validator) - > withInput(Input :: all());」作出反應時,這些字段不僅沒有被填充,而且Laravel也報錯了。我不知道你錯過了什麼。我把所有相關的代碼放在那裏...... –