From 51ec8846e92ae8adbfd2751d612736464b067cb5 Mon Sep 17 00:00:00 2001 From: Mark Scherer Date: Mon, 4 Jan 2016 10:32:04 +0100 Subject: [PATCH] Add interface checks --- src/Datasource/RulesChecker.php | 3 ++- src/ORM/Marshaller.php | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Datasource/RulesChecker.php b/src/Datasource/RulesChecker.php index ed9023921de..06d590b9297 100644 --- a/src/Datasource/RulesChecker.php +++ b/src/Datasource/RulesChecker.php @@ -14,6 +14,7 @@ */ namespace Cake\Datasource; +use Cake\Datasource\InvalidPropertyInterface; use InvalidArgumentException; /** @@ -328,7 +329,7 @@ protected function _addError($rule, $name, $options) } $entity->errors($options['errorField'], $message); - if (isset($entity->{$options['errorField']})) { + if ($entity instanceof InvalidPropertyInterface && isset($entity->{$options['errorField']})) { $invalidValue = $entity->{$options['errorField']}; $entity->invalid($options['errorField'], $invalidValue); } diff --git a/src/ORM/Marshaller.php b/src/ORM/Marshaller.php index 56ccb1ec4c1..cbbd8207f5a 100644 --- a/src/ORM/Marshaller.php +++ b/src/ORM/Marshaller.php @@ -19,6 +19,7 @@ use Cake\Database\Expression\TupleComparison; use Cake\Database\Type; use Cake\Datasource\EntityInterface; +use Cake\Datasource\InvalidPropertyInterface; use RuntimeException; /** @@ -128,7 +129,9 @@ public function one(array $data, array $options = []) $properties = []; foreach ($data as $key => $value) { if (!empty($errors[$key])) { - $entity->invalid($key, $value); + if ($entity instanceof InvalidPropertyInterface) { + $entity->invalid($key, $value); + } continue; } $columnType = $schema->columnType($key);