在 CakePHP 中保存特定数据的问题

Issue with saving specific data in CakePHP

我有一个问题,需要保存一些关于用户创建的特定数据,但不确定如何处理它。

我有三个模型,用户、投资组合和帐户。用户有一个投资组合,投资组合有多个帐户。我试图弄清楚如何在创建用户时保存帐户数据。但这还没有结束。

目前在创建用户时,创建用户成功后还会创建一个投资组合。在 UsersController.php 文件中使用这 3 行:

if ($this->User->save($this->request->data['User'])) {
            $this->request->data['Portfolio']['user_id'] = $this->User->id;
            if ($this->User->Portfolio->save($this->request->data['Portfolio'])) {

账户 table 相当少,id,portfolio_id,货币和金额。在创建用户时,需要向帐户添加多行 table,我们支持的每种货币对应一行(目前为 2,以后可能会更多),每行可以有不同的金额。

我的问题有两个,第一,我如何在用户注册表中创建这个新数据?其次,成功创建用户后我该如何处理它?

我承认我没有对此做太多研究,因为我什至不知道要搜索什么才能找到这个特定问题。如果您需要更多信息,请询问,我将编辑此 post 以提供它。

编辑: 在遵循使用 saveAll 保存所有数据和关联数据的建议后,我 运行 进入了另一个问题。我的投资组合 table 就是目前苗条的定义。现在,它只包含一个 user_id 而已。因此,当我 运行 保存操作时,请求->数据数组中没有数据表示需要保存投资组合,因为唯一需要保存的数据来自 user_id只能在创建用户后获取。

调查CakePHP's saveMany()。这就是您要找的。此页面也可以回答任何其他与此相关的小问题。