仅当检测到更改时(自动)更新 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
对不起我的英语不好:(
我正在使用 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