在下面的generator.yml中,我可以更改后端使用的表单的类。但是,我希望在编辑现有对象或创建新对象时有不同的形式。
编辑对象时,我想取消设置字段“开始”,而不是在创建新对象时丢失它。这是可能的,如果是的话,怎么样?
JobeetCategory:
columns:
name: { type: string(255), notnull: true, unique: true }
test: { type: string(255) }
onset: { type: boolean }
generator.yml:
config:
actions: ~
fields: ~
list:
title: Category Management
filter: ~
form:
class: TestForm
edit:
title: Editing Category "%%name%%"
new:
title: New Category
答案 0 :(得分:1)
您可以在表单类中有条件地设置或取消设置小部件,具体取决于您的对象是新对象还是正在编辑:
<?php
class JobeetCategoryForm extends BaseJobeetCategoryForm {
public function configure() {
$this->setWidgets(array(
'onset' => new sfWidgetFormInputCheckbox()
// other widgets...
));
$this->setValidators(array(
'onset' => new sfValidatorBoolean()
// other validators...
));
if (!$this->object->isNew()) {
// we are editing an existing category
unset($this['onset']);
}
// ...
}
}