我正在寻找将 id 添加到数据库表的最佳实践。作为一个例子,我有一个有许多食谱的成员(模型)。Recipe 模型声明它属于成员:
public $belongsTo = array(
'Member' => array(
'className' => 'Member',
'foreignKey' => 'member_id',
)
);
我希望这在将新食谱保存到数据库时就足够了,但我发现 cake 无法自行确定关系,因为我收到错误消息(“一般错误:1364 字段'member_id'没有默认值值”)使用添加时:
public function add() {
if ($this->request->is('post')) {
$this->Recipe->create();
if ($this->Recipe->save($this->request->data)) {
$this->Session->setFlash(__('The recipe has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The recipe could not be saved. Please, try again.'));
}
}
}
现在,在这种情况下,我可以通过添加轻松解决问题
$this->request->data['Recipe']['member_id'] = $this->Auth->user('id');
但一般来说,我要添加的 id 不会与 Auth 数据一起存储。所以我想知道在保存属于其他东西的东西时如何访问 id。
编辑:我认为我的问题可能措辞不够好。我将重申我正在寻找的内容:
假设用户有很多 A,其中有很多 B,其中有很多 C。C 属于 B、A 和用户(C 的表包含 user_id、a_id 和 b_id)。用户登录,然后选择某个 A,然后选择某个 B。用户现在想要添加一个新 C。获取新 C 条目的所有 id 值的最佳方法是什么?我只是设置了一堆会话变量吗?它们都应该在 URL 中传递吗?有没有更好的办法?