嘗試使用匹配根據相關數據更新某些行。 但只有「where」子句正在工作。 「匹配」被忽略!更新查詢使用的地方和匹配Cakephp 3.X - 有可能嗎?
我,做錯了什麼?
$tbTU = TableRegistry::get('TaskUsers');
$query = $tbTU->query()
->where([
'TaskUsers.service_order_id' => $so_id,
'TaskUsers.status IN' => [0, 4, 7, 9],
])
->contain(['Tasks'])
->matching('Tasks', function($q) {
return $q->where([
'Tasks.task_type IN' => [1, 4, 5]
]);
});
return $query
->update()
->set([
'status' => 3,
'user_id' => NULL,
'modified' => Time::now()
])
->execute();
謝謝!!
我認爲這是不可能的。無論如何,你的模型之間有什麼關係?似乎你不需要一個匹配的語句,如果一個'TaskUser'屬於'Task' – arilia
是的,TaskUsers屬於任務。例如,我怎樣才能更新狀態爲4或7的TaskUser,屬於具有task_type爲1或5的任務,而不使用匹配? – npena