Cakephp编辑BelongsTo相关字段

时间:2015-04-22 22:41:56

标签: cakephp

我在编辑关联(BelongsTo)字段时遇到问题......

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?

1 个答案:

答案 0 :(得分:0)

FormHelper拾取您必须设置的模型数据

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

在Controller中

,否则帮助者不知道你在哪里隐藏数据:)

(提示:通常你可以在这种情况下调试帮助程序代码)