Phalcon PHP:更新主自然密钥

Phalcon PHP:更新主自然密钥,php,mysql,sql-update,phalcon,natural-key,Php,Mysql,Sql Update,Phalcon,Natural Key,有没有一个好方法可以更新一个在Phalcon中有一个自然键的表 考虑下表: people ------ person created_at updated_at 我们假设person字段是唯一的,并且是主键。我试着做到以下几点: $person = new People(); $person->person = 'Ed'; $person->save(); $personUpdate = People::findFirst('person = "Ed"'); $personUpd

有没有一个好方法可以更新一个在Phalcon中有一个自然键的表

考虑下表:

people
------
person
created_at
updated_at
我们假设person字段是唯一的,并且是主键。我试着做到以下几点:

$person = new People();
$person->person = 'Ed';
$person->save();

$personUpdate = People::findFirst('person = "Ed"');
$personUpdate->person = 'Bob';
$person->save();
Phalcon最终试图做的是插入一条新记录,而不是更新现有记录。我需要它做的是更新。。。其中person='Ed'

想法


谢谢

除了<代码>人员::查找

$personUpdate = People::findFirst('person = "Ed"');
$personUpdate->person = 'Bob';
$person->save();
find
将准备获取所有数据。。这意味着它在数组中

您需要使用
findFirst
而不是
find

$personUpdate = People::findFirst('person = "Ed"');
$personUpdate->person = 'Bob';
$person->save();
试试下面的

<?php 
$personUpdate = People::findFirst('person = "Ed"');
$personUpdate->person = 'Bob';
$person->update();

请注意,您使用的是$person->update(),而不是$personUpdate->update()


是的,你说得对。我没有思考,只是在脑子里打字。事实上,我确实使用findFirst来获取单个对象。请接受我的回答谢谢:)它并没有解决问题,我很抱歉:(我很感激这个答案,因为它提醒我要更改上面的代码。噢,伙计。我太有希望了!即使使用->update(),实际上什么都没有发生。(没有创建或更新。)只要我不去更新nat.key,一切都会好起来的。