Два способа:
1. Напишите свою собственную конфигурацию администратора
Это предпочтительный метод, если существуют значительные различия между двумя формами. Этот файл находится в папке конфигурации модуля. «moduleName» следует заменить именем модуля.
class moduleNameGeneratorConfiguration extends BaseModuleNameGeneratorConfiguration
{
public function getForm($object = null, $options = array())
{
$options = array_merge($this->getFormOptions(), $options);
if ($object && $object->exists())
{
return new EditModelForm($object, $options);
}
else
{
return new NewModelForm($object, $options);
}
}
}
2. Отделите логику внутри формы
Это может запутаться, если есть существенные различия, но вы можете просто позвонить isNew
внутри формы, если необходимо, например,
public function configure()
{
if ($this->isNew())
{
//do new stuff
}
else
{
//do edit stuff
}
}