我需要在数据库的order
字段中更改两行的值。这个领域是独一无二的。
我尝试了什么:
将两个项的值存储在PHP变量中
将第一行的字段值设置为NULL
(字段中接受空值),
将第二行的字段的值设置为第一行所持有的值
将第一行的字段值设置为原始的第二行字段值。
它不起作用,因为我在执行订单更改时遇到“重复输入”错误。我似乎无法使用CakePHP找到如何做到这一点。
这是我编写的代码(即使它不是函数):
if ($second_row) {
$next = $second_row['Immeuble']['order'];
$prev = $first_row['Immeuble']['order'];
$this->Immeuble->id = $first_row_id;
$this->Immeuble->saveField('order', 'null');
$this->Immeuble->id = $second_row['Immeuble']['id'];
$this->Immeuble->saveField('order', $prev);
$this->Immeuble->id = $first_row_id;
$this->Immeuble->saveField('order',$next);
}
答案 0 :(得分:0)
当然是重复的密钥
你定义了两次id
$this->Immeuble->id = $first_row_id;
和
$this->Immeuble->id = $second_row['Immeuble']['id'];
然后
$this->Immeuble->id = $first_row_id;
尝试删除最后一行
答案 1 :(得分:0)
我上面描述的代码完全是功能。我只是反转一些值,这会搞砸一切。我不会删除这个问题以防其他人需要做类似的事情。