我正在尝试插入具有多级 HasMany 关系的模型表中。这是到目前为止的细分
客户->(HasMany)->会员->(HasMany)->收入
但是,在尝试插入收入表时,我得到一个“非空违规”,其中成员表中的外键没有被带到收入表中。我知道最常见的问题是搞砸了 $_has_many 和 $_belongs_to 属性,但据我所知它们很好。另外,只需插入成员表就可以了,所以我至少知道它在第一层工作!我唯一能想到的是,既然它是第二层,它就会因此而搞砸。这是我的代码:
关系链接(会员)
protected static $_has_many = array(
'incomes' => array(
'key_from' => 'id',
'model_to' => 'Model_Income',
'key_to' => 'member_id',
'cascade_save' => true,
'cascade_delete' => true,
),
);
关系链接(收入)
protected static $_belongs_to = array(
'member' => array(
'key_from' => 'member_id',
'model_to' => 'Model_Member',
'key_to' => 'id',
'cascade_save' => true,
'cascade_delete' => true,
),
);
控制器代码
// code to set up $customer
$customer->members[] = Model_Member::forge();
// set $member_vals here
$customer->members[0]->set($member_vals);
$customer->members[0]->incomes[] = Model_Income::forge();
// set $income_vals here
$customer->members[0]->incomes[0]->set($income_vals);
$customer->save();