2010-05-02 29 views
7

Tôi đang sử dụng Symfony 1.3.2 trên Ubuntu 9.10hình thức Symfony: làm thế nào để thiết lập giá trị mặc định cho một widget textarea

tôi muốn thiết lập các giá trị mặc định của một widget textarea, với dữ liệu đọc froma adb.

đoạn mã của tôi trong mẫu trông thích này:

<?php $form['notes']->render(); ?> 

Các tài liệu API không thấy làm thế nào để làm điều này - không ai biết làm thế nào để làm điều này?

+0

Bạn đã xem cái này chưa? http://forum.symfony-project.org/index.php/m/64073/#msg_64073 –

+0

Có, tôi thấy bài đăng đó. Tôi đã bỏ qua nó vì nó là hack ... Tôi sẽ phải thực hiện lại tất cả các widget và validator của mình nếu tôi kế thừa từ sfForm thay vì đối tượng cơ sở, trở thành một cơn ác mộng bảo trì nếu các thuộc tính mô hình cơ bản thay đổi. – morpheous

Trả lời

10

Bạn có thể sử dụng điều này trong hành động của bạn hoặc lớp mẫu:

$this->form = new yourForm(); // If its in your action 

$text = // data for prepopulating field, from db or anywhere 

$this->form->setDefault('notes', $text); 

... hoặc nếu bạn đã có nhiều lĩnh vực:

$this->form->setDefaults(array('notes' => $text, 'more_notes' => $more_text)); 

Hoặc nếu bạn thích tuyên bố nó chỉ một lần với tiện ích con trong cấu hình lớp biểu mẫu của bạn (Tôi nghĩ rằng điều này là đúng):

$this->setWidgets(array(
    // widgets 
    'notes' => new sfWidgetFormTextArea(array('default' => $text)), 
    // widgets 
)); 
+0

Tom: Cảm ơn! đã làm điều đó (tôi đã đấu tranh với vấn đề này) – morpheous

+0

Làm thế nào một người nên làm điều tương tự cho một trường 'TextareaType' duy nhất? – Trix

Các vấn đề liên quan