2013-10-30 37 views
7

您好,我目前正在使用Laravel 4表單。我努力在沒有選擇「默認值」的情況下生成具有特定類的文本輸入。我要做到以下幾點:Laravel 4表單文本輸入

{{ Form::text('first_name', array('class' => 'first_name')) }} 

但是我得到這個錯誤(htmlentities() expects parameter 1 to be string, array given),除非我添加了一個默認值:

{{ Form::text('first_name', 'Some Value', array('class' => 'first_name')) }} 

的默認值,然後填充字段,需要之前被刪除輸入一個新的價值。所以它甚至不能像佔位符一樣使用。

謝謝你在前進,

+0

簡單的解決方法:給它一個默認值''''''''。 – Mike

+0

謝謝邁克,工作。 – Liondedan

回答

20

取而代之的是價值,供應null。 (做無供應空字符串""

這會在未來的方便,如果你打算使用表單模型綁定(http://laravel.com/docs/html#form-model-binding)工作,因爲null將給定的模型屬性的值。

+1

謝謝Rob - 從來沒有說過,這解決了這個問題:) – Liondedan

6

可以傳遞像一個空值""

{{ Form::text('first_name', '', array('class' => 'first_name')) }} 

由於Laravel 4的HTML Form Builder API將接受第一個參數作爲name,第二個參數爲value它默認和第三參數作爲options array這是一個是null默認情況下爲empty array

因此,基本上可以只透過類似名稱建立文本輸入,

{{ Form::text('first_name') }} 

如果您計劃傳遞這是第三個參數選項,還必須通過第二個參數。

在這裏看到API文檔http://laravel.com/api/source-class-Illuminate.Html.FormBuilder.html#235-246

-2

我發現它更好地使用Input::old('first_name')爲默認值,而不是僅僅「」,如:

{{ Form::text('first_name', Input::old('first_name')) }}

這樣,如果你回去表單中包含無效數據並通過表單輸入,它將重新加載用戶先前輸入的舊輸入。在這種情況下,名字被/綁定到數據庫表中的名字字段中。

編輯:是的,第三個選項是一組輸入選項,如文本字段ID,大小等或任何其他HTML屬性。

Keenan :)