仅当检测到更改时(自动)更新 table 中的行(实体)

Update a row(entity) in a table only if a change detected(automatically)

对不起我的英语不好:(

我正在使用 CAKPHP 3 框架,我想更新 table 中的一行(实体)仅当检测到更改(自动)时。

例如:

$id = 1;
// debug($this->request->data)
$this->request->data = ['id' => 1, 'name' => "My Name", 'content' => "My Content"];
// Inside the ArticlesController
$article = $this->Articles->get($id);
// debug($article)
object(Cake\ORM\Entity) {
    'id' => (int) 1,
    'name' => "My Name",
    'content' => "My Content",
    '[new]' => false,
    '[accessible]' => [
        '*' => true
    ],
    '[dirty]' => [],
    '[original]' => [],
    '[virtual]' => [],
    '[errors]' => [],
    '[repository]' => 'Articles'
}

请求数据原始数据之间没有区别所以我有拒绝更新查询return向用户发出警告未检测到任何更改!

我必须做什么?

谢谢

每个实体都有一个字段 'dirty',显示实体是否已更新。

您可以使用类似的东西:

if($article->dirty()) {
    // send a flash message
}

在这里查看这本书:http://book.cakephp.org/3.0/en/orm/entities.html#checking-if-an-entity-has-been-modified