2015-04-22 71 views
0

我有在相关的(属于关联)字段编辑的问题...CakePHP的编辑属于关联关联字段

Class ModelA extends AppModel { 
    public $belongsTo = array ('ModelB'); 

    public $actsAs = array('Containable'); 

    public function getModelA($id){ 
     $modelA = $this->find('all', array('contain' => array('ModelB'),'conditions' => array('ModelA.id' => $id))); 
     if(count($modelA)>0){ 
      $modelA = $modelA[0]; 
     } 
     return $modelA; 
    } 
} 

class ModelAsController extends AppController { 
    public function edit($id = null) { 
     $modelA = $this->ModelA->getModelA($id); 
     $this->set('modelA', $modelA); 
    } 
} 

数据在$ MODELA的格式为:

array(
    'ModelA' => array(
     ... 
    ), 
    'ModelB' => array(
     ... 
    ) 
) 

到目前为止,一切都很好...

但是,我坚持edit.ctp。我需要从ModelB编辑field1的输入,但我得到空的输入框。代码行是这样的:

echo $this->Form->input('ModelB.field1'); 

当我尝试调试:

Debugger::log($modelA['ModelB']['field1']); 

然后我有正确的值。

将输入框填充到ModelB的field1的方式是什么?

回答

0

FormHelper皮卡你有模型数据设置

$this->request->data = $modelA;

在控制器,否则助手有不知道在哪里,你已经隐藏数据:)

(尖:通常你可以在这种情况下调试帮手代码)

+0

你说得对。我发现一样。 $ this-> data = $ modelA;也很好。 –