Tôi muốn sử dụng tập lệnh xem để biểu mẫu zend của tôi vì nó có vẻ là cách tốt nhất để kiểm soát bố cục/thiết kế của biểu mẫu trong khi vẫn sử dụng các lớp Zend_Elements.Sử dụng ViewScript Decorator trên các biểu mẫu con lồng nhau (Mẫu Zend)
Từ tập lệnh chế độ xem, tôi hiển thị phần tử với $this->element->getElement('elementName')
.
Tôi đang gặp sự cố với tên của các phần tử. Đây thực sự là một biểu mẫu con bên trong một biểu mẫu con bên trong một biểu mẫu.
Khi tôi sử dụng các trang trí FormElements, tên đầy đủ của các thành phần được tạo thành [subForm] [subForm] [element], điều này rất tốt. Wehn Tôi đã chuyển đến trình trang trí viewScript, nó đã thay đổi thành subForm [subForm] [element].
Tôi hiểu rằng tôi cần sử dụng trình trang trí PrepareElements để sửa lỗi này, nhưng điều này khiến tên thay đổi biểu mẫu [subForm] [form] [subForm] [subForm] [elements] (nó tăng gấp đôi hai tên đầu tiên trong khởi đầu).
Bất kỳ ý tưởng nào về cách xử lý này?
Cảm ơn.
CẬP NHẬT: Tôi đã cố gắng gỡ lỗi PrepareElements và tôi thực sự không hiểu những gì đang làm. Dường như nó hoạt động ok trong lần lặp đầu tiên, nhưng sau đó nó lại thêm tiền tố biểu mẫu [subform] khi chạy trên một trong các biểu mẫu con ở giữa.
Khi tôi không sử dụng trang trí PrepareElements, tôi chỉ thiếu tiền tố "biểu mẫu" trong tên (tức là thay vì biểu mẫu [subForm] [element], tôi chỉ nhận được subForm [element]).
Tôi có thể khắc phục điều này bằng cách nào đó không?
Tôi đã cố thay đổi thuộc tính nhưng chỉ thay thế tiền tố "subForm".
Nó thực sự có vẻ giống như những gì còn thiếu là một phương thức thuộc tính trên subForm.
Một lần nữa, tất cả điều này là do trình trang trí ViewScript. Nó hoạt động tốt với các trang trí FormElements.
CẬP NHẬT 2: Chỉ cần làm rõ, tôi không ngại thay đổi tên này, nhưng nó khiến các trường của tôi không điền khi tôi gọi form-> điền vào.
Edit: Tôi nghĩ rằng tôi đã thu hẹp vấn đề như thế này: khi tôi nhận được giá trị của tôi trở lại trong setDefaults, họ được sắp xếp như thế này:
array(
\"formElements1-name\" => value1... \"subFormName\" => array(
\"parentFormName\" => array(
\"subFormName\" => subForm-values-array
)
)
... Vấn đề chính ở đây là số "parentFormName" => "subFormNAme"..
nó lặp lại chính nó là gì? Tôi đã ở dạng chính. Tôi đoán điều này là do tôi đã đặt setElementsBelongTo(formName[subFormName])
, nhưng nếu tôi không làm điều đó, thì tôi sẽ nhận được các giá trị biểu mẫu con hoàn toàn tách biệt khỏi biểu mẫu,
tức là giá trị mảng = array ( \ "formName \" => array ( formValues ), \ "subFormNAme \" => array ( subFormValues )
, trong khi tôi exepct nó được
array(
formName => array(
subFormNAme => values-array
)
)...
là nó thậm chí có thể làm cho công việc này?
Bản sao chính xác của [Zend: Trình bày trang và ký hiệu mảng ViewScript] (http://stackoverflow.com/questions/7155047/zend-viewscript-decorator-and-array-notation) – Phil
Nó không trùng lặp vì tôi đã bằng cách sử dụng các giải pháp được đề xuất nhưng nó không hoạt động tốt. – Ran
Các hình thức Zend phải là mảnh vỡ nhất, vô lý, điên rồ của crap tôi từng gặp phải sự bất hạnh phải chịu. Tôi hoàn toàn cảm thấy đau đớn của bạn, nếu bạn tìm ra những gì sai sau đó bằng mọi cách xin vui lòng cho tôi biết! – GordonM