【问题标题】:Error saving Associated data cakephp 3保存关联数据 cakephp 3 时出错
【发布时间】:2018-03-12 06:17:36
【问题描述】:

我无法使用 cakephp 3 关联保存数据

地址标题表

$this->hasMany('Addresses', [
            'foreignKey' => 'address_header_id'
        ]);

地址表

$this->belongsTo('AddressHeaders', [
            'foreignKey' => 'address_header_id',
        ]);

控制器代码

$data = [
            'user_id' => 1,
            'company_id' => 4,
            'address' => [
                'user_id' => 1,
                'company_id' => 4,
                'name' => 'Aneh'
            ]
        ];

        $entity = $this->AddressHeaders->newEntity();
        $entity = $this->AddressHeaders->patchEntity($entity, $data, [
            'associated' =>['Addresses']
        ]);
        if($this->AddressHeaders->save($entity)){
            echo "save";
        }else{
            pr($entity->errors());
        }

我们需要在一个地址头id下保存多个地址。当我运行上面的代码时,它会在 address_header 中创建输入,但没有在地址表中输入任何条目。

【问题讨论】:

    标签: cakephp cakephp-3.0


    【解决方案1】:

    你的数据结构应该是这样的:

    $data = [
        'user_id' => 1,
        'company_id' => 4,
        'addresses' => [
            [
                'user_id' => 1,
                'company_id' => 4,
                'name' => 'Aneh'
            ]
        ]
    ];
    

    https://book.cakephp.org/3.0/en/orm/saving-data.html#saving-hasmany-associations

    当保存 hasMany 关联时,ORM 需要一个实体数组 以关联名称的复数、下划线版本命名

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    相关资源
    最近更新 更多