gpt4 book ai didi

cakephp - 有很多不保存

转载 作者:行者123 更新时间:2023-12-02 06:43:32 25 4
gpt4 key购买 nike

我有以下有很多直通关系

Alert            AlertsElement       Search 
id id id
name alert_id link
search_id
ordering

这是我的模型

class Alert extends AppModel {
var $name = 'Alert';
var $hasMany = array('AlertsElement');

class AlertsElement extends AppModel {
var $name = 'AlertsElement';
var $belongsTo = array('Alert','Search');

class Search extends AppModel {
var $name = 'Search';
var $hasMany = array('AlertsElement');

这是我用来保存的测试代码 -

$d = array();
$d['Alert']['id'] = 1976;
$d['Search']['id'] = 107;
$d['AlertsElement']['ordering'] = 2;
$this->Alert->create();
$this->Alert->saveAll($d);

我收到这个错误-

Cannot use a scalar value as an array [CORE/cake/libs/model/model.php, line 1696]

和 alertselement 中的一行条目,其中包含顺序但外键设置为 0

有什么想法吗?

谢谢,亚历克斯

最佳答案

为了使用 saveAll 保存一个 hasMany 关系,hasMany 关联的模型数据(在本例中,$d ['AlertsElement']) 需要是关联数组的索引数组,因此:

$d = array(
'Alert' => array(
'id' => 1976
),
'AlertsElements' => array(
0 => array(
'ordering' => 2
)
)
);
$this->Alert->saveAll($d);

请注意,由 'ordering' 键及其值组成的关联数组已向下移动到索引数组中。这是在单个 saveAll 操作中保存 hasMany 关联数据所需的格式,因为无论您要保存一条还是十条关联记录,这种格式都可以优雅地扩展。

请参阅 saving related model data 上的 Cake 手册了解更多信息。

关于cakephp - 有很多不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com