2010-11-24 70 views

回答

3

两种方式:

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 
    } 
} 
0

您可以创建与前端应用程序相同的目录结构,并且它将覆盖生成器表单。例如,在后端模块中创建一个indexSuccess.php文件。加载该模块时,它将立即使用indexSuccess.php文件。

要做到这一点,最简单的方法是从您的/ cache文件夹复制数据 - 基本上复制生成的后端模块文件,并以您想要的方式修改它们。

1

我能够做不同的事情“新”,以相同的形式“编辑”,使用

$this->isNew() 
0

您可以根据操作指定表单中哪些字段可用,请参阅The form section only exists as a fallback for the edit and new sections

例如:

generator: 
    param: 
     form: 
     display: 
      group1:    [name, description] 
     edit: 
     title:    Edit item %%name%% 
     fields: 
      #group1:    [name, description] -> inheritance 
      group2:    [only_displayed_when_editing_field] 
     new: 
     title:    New item 
     fields: 
      group1:    [name] #override 
相关问题