Kayıt Oluşturma ve Düzenleme Formu
Her ikisi için de aynı formu kullanarak Nette'de kayıt ekleme ve düzenleme nasıl düzgün bir şekilde uygulanır?
Birçok durumda, kayıt ekleme ve düzenleme formları aynıdır, sadece düğme üzerindeki etiket farklıdır. Formu önce bir kayıt eklemek, sonra düzenlemek ve son olarak iki çözümü birleştirmek için kullandığımız basit sunum örneklerini göstereceğiz.
Kayıt Ekleme
Kayıt eklemek için kullanılan bir sunum örneği. Gerçek veritabanı işini, kodu örnekle ilgili olmayan
Facade
sınıfına bırakacağız.
Bir Kaydı Düzenleme
Şimdi bir kaydı düzenlemek için kullanılan bir sunucunun nasıl görüneceğini görelim:
Sunucu yaşam döngüsünün hemen başında çağrılan action yönteminde, kaydın varlığını ve kullanıcının düzenleme iznini doğrularız.
Kaydı $record
özelliğinde saklarız, böylece varsayılan değerleri ayarlamak için
createComponentRecordForm()
yönteminde ve ID için recordFormSucceeded()
yönteminde kullanılabilir.
Alternatif bir çözüm, varsayılan değerleri doğrudan actionEdit()
adresinde ayarlamak ve URL'nin bir parçası
olan kimlik değerini getParameter('id')
adresini kullanarak almak olabilir:
Ancak, tüm kodlardan çıkarılacak en önemli sonuç bu olmalıdır, formu oluştururken eylemin gerçekten
edit
olduğundan emin olmamız gerekir. Çünkü aksi takdirde actionEdit()
yöntemindeki doğrulama
hiç gerçekleşmez!
Ekleme ve Düzenleme için Aynı Form
Ve şimdi her iki sunucuyu bir araya getireceğiz. Ya createComponentRecordForm()
yönteminde hangi eylemin yer
aldığını ayırt edip formu buna göre yapılandırabiliriz ya da doğrudan eylem yöntemlerine bırakıp koşuldan
kurtulabiliriz: