我在编辑关联(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?
答案 0 :(得分:0)
要FormHelper
拾取您必须设置的模型数据
$this->request->data = $modelA;
,否则帮助者不知道你在哪里隐藏数据:)
(提示:通常你可以在这种情况下调试帮助程序代码)