2013-10-30 19 views
7

Xin chào Tôi hiện đang làm việc với các hình thức Laravel 4. Tôi đang đấu tranh để tạo ra một đầu vào văn bản với một lớp cụ thể mà không chọn 'giá trị mặc định'. Tôi muốn làm như sau:Nhập văn bản mẫu Laravel 4

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

Tuy nhiên tôi nhận được lỗi này (htmlentities() expects parameter 1 to be string, array given.) Trừ khi tôi thêm một giá trị mặc định:

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

Giá trị mặc định sau đó populates lĩnh vực này và cần phải được xóa trước nhập một giá trị mới. Vì vậy, nó thậm chí không thể được sử dụng như một người giữ chỗ.

Cảm ơn bạn trước,

Dan

+0

Giải pháp dễ dàng: đặt giá trị mặc định là không có gì '" "'. – Mike

+0

Cảm ơn bạn Mike đã làm việc. – Liondedan

Trả lời

20

Thay vì một giá trị, cung cấp null. (Làm không cung cấp chuỗi rỗng "")

này sẽ có ích trong tương lai nếu bạn đang đi để làm việc với Form mẫu Binding (http://laravel.com/docs/html#form-model-binding) vì null sẽ cho giá trị của thuộc tính mô hình nhất định.

+1

Cảm ơn bạn Rob - không bao giờ có xung quanh để nói rằng điều này cố định vấn đề :) – Liondedan

6

Bạn có thể vượt qua một giá trị rỗng "" như,

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

HTML Form Builder API Laravel 4 sẽ chấp nhận tham số đầu tiên như name, tham số thứ hai là value đó là null theo mặc định và tham số thứ ba như options array mà là một empty array theo mặc định.

Vì vậy, về cơ bản bạn có thể xây dựng nhập văn bản bằng cách chỉ đặt tên như thế nào,

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

Và nếu bạn đang có kế hoạch để vượt qua tùy chọn đó là số thứ ba, bạn phải vượt qua đối số thứ hai cũng có.

Xem API Doc đây http://laravel.com/api/source-class-Illuminate.Html.FormBuilder.html#235-246

-2

tôi thấy nó tốt hơn để sử dụng Input::old('first_name') cho giá trị mặc định của bạn thay vì chỉ "", như:

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

Bằng cách này, nếu bạn quay trở lại biểu mẫu có dữ liệu không hợp lệ và thông qua đầu vào biểu mẫu, nó sẽ tải lại đầu vào cũ mà người dùng đã nhập trước đó. Trong trường hợp này, first_name là/có thể bị ràng buộc vào trường first_name trong bảng cơ sở dữ liệu của bạn.

Chỉnh sửa: Có, tùy chọn thứ ba là một loạt các tùy chọn nhập, chẳng hạn như id trường văn bản, kích thước, v.v ... hoặc bất kỳ thuộc tính HTML nào khác.

Keenan :)