保存前一次验证多个实体

时间:2015-07-24 14:55:00

标签: cakephp cakephp-3.0

我刚刚发现了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错误而不是实体的错误。

另一种方法是循环遍历所有实体并单独验证它们,但似乎应该有一种更简单的方法。

简单地说明一下:有没有办法一次验证多个实体?

0 个答案:

没有答案