我有动态表,所以我动态创建了2个模型。然后我在它们之间创建了hasOne的关联。它可以很好地读取数据,但是当我使用saveAll()未定义的索引:NodeData [CORE / cake / libs / model / model.php,第1702行]
时,我收到此错误我获得了Node和NodeData模型的代码
class Node extends PostgresAppModel {
var $name = 'Node';
var $useDbConfig = 'pgdata';
var $useTable = false;
var $recursive = 0;
-
class NodeData extends PostgresAppModel {
var $name = 'NodeData';
var $useDbConfig = 'pgdata';
var $useTable = false;
var $primaryKey = 'node_id';
var $recursive = 0;
在控制器中我配置了操作:
function edit($network_id = null, $variation_id = null, $node_id = null)
$prefix = $this->Network->getNetworkPrefix($network_id);
if (!empty($this->data)) {
$this->Node->setSource(sprintf('%s_node', $prefix));
$this->NodeData->setSource(sprintf('%s_node_data', $prefix));
$this->Node->bindModel(array(
'hasOne' => array(
'NodeData' => array(
'foreignKey' => 'node_id',
'className' => 'NodeData',
)
)
));
$this->data['NodeData']['id'] = $this->data['NodeData']['node_id'];
if ($this->Node->saveAll($this->data)) {
我调试了model.php中的行,但无法理解为什么$ this-> {$ type} [$ association]给出错误
$values[$this->{$type}[$association]['foreignKey']] = $this->id;
答案 0 :(得分:1)
模型需要绑定在模型中,而不是绑定在控制器中。