Zend_Form parçası olan seçkin bir elemanı doldurmak için en iyi yolu nedir?
Çeşitli form elemanı değerleri doldurmak için populate()
kullandım ama select ifadeleri nüfuslu alamadım.
Aşağıdaki gibi ama sanıyorum ideal değil çalışır Benim çözüm şudur:
MyForm
Ben bir veritabanı arama yapmak ve gerekli verileri almak (Zend_Form
uzanan) ve init()
yöntemde.
$opt = Zend_Registry::get('dbAdapter');
$sql = 'SELECT DISTINCT foo FROM bar';
$res = $opt->fetchAll($sql);
$flat = $this->flattenArray($res); //this flattens the array and
//sets the keys to equal the values
Bu noktada ben $flat
doğru seçin elemanının çoklu seçenekler değere geçmek. Form doldurulur gerekiyorsa kontrolör, bir görünüm için formu aldığında Sonra, ben onu doldurmak arayın ve her şey düzgün nüfuslu görünür.
Bazı sorunlar görüyorum: bu formu kullanılır her zaman çağrılan yüzden Önce formun init()
yönteminde bu veritabanı çağrı var. İkincisi, sonra ben populate kullanmak için ikinci bir bağlantı yapmak seçme elemanı doldurmak için açılmış bir veritabanı bağlantısı var.
Tüm bu yapmak için daha iyi bir yolu nedir? Ben bir veritabanı bağlantısı yapmak ister ve her şeyi doldurmak için populate kullanımı ve benim denetleyicisi içinde her şeyi yerine genişletilmiş form sınıf ve denetleyici arasındaki bölünmüş olur. Bu iyi bir yaklaşım mı? Bu benim ısmarlama bir çözümdür ve bu çalışıyor ama ben çok ideal olduğunu BİLİYOR
(BTW, yalnız ve izole bir konumda ben bir soru sormak için bir meslektaşım kapma sanki, böyle bir soruyu sormak StackOverflow edememek çalışan birisi olarak, benim için çok yararlıdır ... teşekkürler)