5

Có cách nào đáng tin cậy để tạo chế độ xem tùy chỉnh cho số Zend_Form không? Các trang trí khá khó hiểu và sử dụng chúng theo những cách ưa thích đôi khi quá phức tạp đến nỗi tôi chỉ muốn viết HTML bằng tay. Có cách nào để làm điều đó và vẫn làm cho biểu mẫu hoàn toàn hợp tác với bộ điều khiển (ví dụ: gọi $form->isValid() và mong đợi mọi thứ để xác thực hợp lệ)? Nếu vậy, có bất kỳ cảnh báo nào để tìm kiếm (như chăm sóc về hiển thị lỗi xác thực) không?Tạo dạng xem biểu mẫu trong Zend

Giải pháp lý tưởng là tạo biểu mẫu và chuyển mảng thành phần (chứa dữ liệu cần thiết như tên, ID, kiểu đầu vào và tất cả cần thiết để hiển thị HTML) - Zend Framework có cho phép điều này không?

[EDIT]

Thay vì chỉ echo ing đối tượng hình thức, tôi đã thử thêm mã này trong giao diện (một hình thức đăng nhập đơn giản):

<?php 
$userid = $this->form->getElement('userid'); 
$pass = $this->form->getElement('password'); 
$remember = $this->form->getElement('remember'); 
$submit = $this->form->getElement('submit'); 
?> 
<form enctype="<?php echo $this->form->getEnctype(); ?>" method="<?php echo $this->form->getMethod(); ?>" action="<?php echo $this->form->getAction(); ?>" id="<?php echo $this->form->getId(); ?>"> 
name: <input type="text" id="<?php echo $userid->getId(); ?>" name="<?php echo $userid->getName(); ?>" /><br /> 
pass: <input type="password" id="<?php echo $pass->getId(); ?>" name="<?php echo $pass->getName(); ?>" /><br /> 
remember: <input type="checkbox" id="<?php echo $remember->getId(); ?>" name="<?php echo $remember->getName(); ?>" /><br /> 
submit: <input type="submit" id="<?php echo $submit->getId(); ?>" name="<?php echo $submit->getName(); ?>" value="<?php echo $submit->getValue(); ?>" /> 
</form> 

Hình thức dường như làm việc OK và xác thực (mặc dù tôi không được chuyển hướng trang mà tôi đến từ đó - nhưng đó là một vấn đề khác, tôi tin rằng, khi tôi vượt qua điều đó qua GET, không phải trong biểu mẫu). Điều đó có chấp nhận được không, hoặc tôi đang làm điều gì đó đáng kinh ngạc sai mà không biết điều đó?

+0

Bạn có thể cư zend_forms với dữ liệu sử dụng $ form-> cư ($ data) ; – Marcin

+0

Tôi không có nghĩa là điền chúng với dữ liệu, tôi có nghĩa là viết HTML của riêng tôi, mà không định kỳ sử dụng những trang trí khủng khiếp, khủng khiếp đó. – mingos

+0

Đó là một phương pháp lộn xộn, và đó là lý do tại sao tôi không đăng câu trả lời, nhưng như Marcin đã đề xuất, bạn vẫn có thể viết biểu mẫu của riêng mình trong chế độ xem, với cùng id chính xác và viết biểu mẫu của bạn với Zend_Form và sau đó điền vào nó để sử dụng bộ lọc, trình duyệt tính hợp lệ, v.v ... Bạn cũng có thể sử dụng bộ lọc độc lập và trình duyệt tính hợp lệ mà không sử dụng Zend_Form chút nào, cơ bản nó giống như sử dụng Zend_Form không có biểu mẫu được tạo. Nhưng lời khuyên tốt nhất vẫn là: đi sâu vào trang trí;) –

Trả lời

2

Rất nhiều phụ thuộc vào thiết kế và bố cục cuối cùng.

Bạn muốn hiển thị lỗi xác thực ở đâu? Làm sao? Qua trang trí lỗi?
Bạn cũng muốn sử dụng mô tả?
Bạn có cần sử dụng các trang trí khác không?

Cách tốt nhất có vẻ là chỉ tạo phần tử Zend_Form_Element_ThreadIcons của riêng bạn. Điều này dễ dàng như phân lớp một trong các phần tử Zend_Form và triển khai phương thức tùy chỉnh _render() trả về HTML mà bạn cần. Bạn thậm chí có thể sử dụng ví dụ View của riêng bạn ở đó.

Sau đó, bạn có thể chuyển mảng biểu tượng dưới dạng tùy chọn phần tử và xử lý theo cách bạn cần.

Nếu bạn quyết định sử dụng trang trí, bạn của tôi tìm thấy bài trình bày này rất hữu ích để làm chủ các kỹ thuật:

+0

Tôi thích giải pháp này. Tôi sẽ trở lại làm việc vào thứ hai, vì vậy tôi sẽ kiểm tra nó ra sau đó :). – mingos

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