2009-03-09 2 views
7

Tôi đang sử dụng Symfony 1.2 trong lớp biểu mẫu Propel tiêu chuẩn.Làm cách nào để lấy dữ liệu người dùng dưới dạng trong Symfony 1.2?

public function configure() 
{ 
    $this->setWidgets(array( 
'graduate_job_title' => new sfWidgetFormInput(array(), array('maxlength' => 80, 'size' => 30, 'value' => '')) 
    )); 
    //etc 
} 

Tuy nhiên, tôi muốn giá trị của trường này đến từ thông tin người dùng mà tôi thường truy cập bằng cách sử dụng $this->getUser()->getAttribute('...'). Tuy nhiên, điều này dường như không hoạt động trong biểu mẫu.

Tôi nên sử dụng thông tin gì?

Trả lời

6

Tính năng này có hoạt động không?

sfContext::getInstance()->getUser()->getAttribute('...'); 

// Sửa: Xem NHẬN ĐỊNH cirpo về việc sử dụng sfContext để thay thế.

+0

trình, cảm ơn bạn! –

+0

Cảm ơn bạn, nó hoạt động – Nordes

14

Đó là một ý tưởng rất tồi để dựa vào cá thể sfContext. Tốt hơn là chuyển những gì bạn cần trong khi khởi tạo sfForm trong tham số mảng tùy chọn.

http://www.symfony-project.org/api/1_4/sfForm

phương pháp __contruct

ví dụ như trong hành động của bạn:

$form = new myForm(null, 
        array('attributeFoo' => 
         $this->getUser()->getAttribute('attributeFoo')); 

và sau đó lấy giá trị bên trong lớp mẫu:

$ this-> getOption ('attributeFoo');

cirpo

+1

Điều gì xảy ra nếu bạn đang sử dụng một plugin như sfDoctrineGuard để tự động tạo biểu mẫu? Tôi không trực tiếp tạo ra các biểu mẫu trong các lớp học của riêng tôi. – codecowboy

+0

Đó là những gì tôi đang tìm kiếm. Cảm ơn! Trong trường hợp của tôi, nó hoạt động với Symfony 1.4 –

-1

Trong Symfony 1.4, đối tượng $ sf_user