看起来你的逻辑模型实际上位于两个表格中。 首先,决定哪个表格是“初级”表格, 也可以选择两种方式。 我将首先创建以下模式, 来制作“标题”表格 :
class Model_Header extends Model_Table {
public $table= header ;
function init(){
parent::init();
$this->addField( date )->type( date );
$this->addField( field1 );
$this->addField( field2 );
}
}
接下来,您需要与第二个表格合并,并从中添加字段。当您调用 $model- gt;join () 时, 它会返回“ SQL_ relational” 对象, 该对象可以用来添加额外的字段并创建更多的加入。 您可以创建一个新对象或扩展您现有的对象 。
class Model_Record extends Model_Table {
public $table= header ;
function init(){
parent::init();
$this->addField( date )->type( date );
$this->addField( field1 );
$this->addField( field2 );
$detail = $this->join( detail.idheader );
$detail->addField( body );
$details->addField( body_field1 , field1 );
}
}
由于两个表格定义相同的字段和模型必须有一个独特的字段,我定义了一个用于细节的新名称.field1。我还明确指定了用于加入(idheader)的字段。接下来,你正在使用新模型,就像任何其他模式一样:
$form=$this->add( Form );
$form->setModel( Model_Record );
$form->onSubmit(function($form){
$form->update()->js()->successMessage( success! )->execute();
});