我已經使用laravel的表單模型綁定創建了一個表單。Laravel:表單模型綁定到帶有選項的輸入
在表單中,我創建了顯示模型信息所需的表單字段。當寫出來的最小結構填充一切正常:
{{ Form::model($user, array('route' => array('users.update', $user->id), 'method' => 'put')) }}
{{ Form::label('first_name', "First Name")}}
{{ Form::text('first_name')}}
...
這種方式設置,頁面加載時,就像我期望/想讓它從我的模型first_name
值自動填充。
當我嘗試指定文本輸入的選項時,問題就出現了。我使用bootstrap,所以我想添加一個form-control
類,我還想在輸入字段中佔位符。要做到這一點,我定義我的文字輸入像這樣:
{{ Form::text('first_name', array('placeholder' => "e.g. Zoe", 'class' => 'form-control'))}}
注意,對於文本值的第二個參數是空的。這是因爲我希望通過模型綁定輸入,而不必添加類似$user->first_name
之類的內容,因爲那麼模型綁定有什麼意義呢?
如果我離開它這樣,我得到一個錯誤,因爲Form::text()
expects a string for the value,但如果我輸入類似修復:
{{ Form::text('first_name', '', array('placeholder' => "e.g. Zoe", 'class' => 'form-control'))}}
然後我得到一個空值,因爲我給它一個空字符串。
有沒有一種方法可以在laravel中使用表單模型綁定來填充值,並仍然傳遞選項數組中的佔位符和類定義?
完美。也感謝您解釋背後的細節! –
在我的情況下,我不想顯示舊的輸入值。所以我用null替換了Input :: old()。它工作.. – Zohaib
在Laravel 5中,'$ user-> first_name'與默認值'Input :: old('first_name')'的行爲完全相同。那有什麼意義呢?但是,當我必須自己設置默認值時,表單模型綁定不會節省我的工作量。 – halloei