我刚刚发现了CakePHP3并且遇到了以下问题: 在我的代码中,我试图通过事务一次保存多个实体,如文档(http://book.cakephp.org/3.0/en/orm/saving-data.html#changing-accessible-fields)中所述。 现在我想在交易期间(或之前)验证所有实体。我认为有可能做这样的事情:
$entities = $table->newEntities($newEntities);
$result = $table->connection()->transactional(function () use ($table, $entities) {
foreach ($entities as $entity) {
if(!$table->save($entity)) {
return array(
'success' => false,
'errors' => $entity->errors(),
);
}
}
return array(
'success' => true,
);
});
$newEntities
变量是一个包含一些无效数据的数组(用于测试目的)。我希望在$result
变量中得到错误,并且事务不会执行,但事务确实执行了,我得到一个SQL错误而不是实体的错误。
另一种方法是循环遍历所有实体并单独验证它们,但似乎应该有一种更简单的方法。
简单地说明一下:有没有办法一次验证多个实体?