Browse Source

Add Cake\ORM\Query::disableHydration().

ADmad 7 years ago
parent
commit
bc8c37f5e5

+ 1 - 1
src/Http/Session/DatabaseSession.php

@@ -114,7 +114,7 @@ class DatabaseSession implements SessionHandlerInterface
             ->find('all')
             ->select(['data'])
             ->where([$this->_table->getPrimaryKey() => $id])
-            ->enableHydration(false)
+            ->disableHydration()
             ->first();
 
         if (empty($result)) {

+ 1 - 1
src/ORM/Behavior/TranslateBehavior.php

@@ -752,7 +752,7 @@ class TranslateBehavior extends Behavior implements PropertyMarshalInterface
         $query = $association->find()
             ->select(['id', 'num' => 0])
             ->where(current($ruleSet))
-            ->enableHydration(false)
+            ->disableHydration()
             ->enableBufferedResults(false);
 
         unset($ruleSet[0]);

+ 1 - 1
src/ORM/Behavior/TreeBehavior.php

@@ -837,7 +837,7 @@ class TreeBehavior extends Behavior
             ->select([$aliasedPrimaryKey])
             ->where([$this->_table->aliasField($parent) . ' IS' => $parentId])
             ->order($order)
-            ->enableHydration(false);
+            ->disableHydration();
 
         $leftCounter = $counter;
         $nextLevel = $level + 1;

+ 16 - 0
src/ORM/Query.php

@@ -1011,6 +1011,22 @@ class Query extends DatabaseQuery implements JsonSerializable, QueryInterface
     }
 
     /**
+     * Disable hydrating entities.
+     *
+     * Disabling hydration will cause array results to be returned for the query
+     * instead of entities.
+     *
+     * @return $this
+     */
+    public function disableHydration()
+    {
+        $this->_dirty();
+        $this->_hydrate = false;
+
+        return $this;
+    }
+
+    /**
      * Returns the current hydration mode.
      *
      * @return bool

+ 1 - 1
src/ORM/Table.php

@@ -1797,7 +1797,7 @@ class Table implements RepositoryInterface, EventListenerInterface, EventDispatc
             ->select(['existing' => 1])
             ->where($conditions)
             ->limit(1)
-            ->enableHydration(false)
+            ->disableHydration()
             ->toArray()
         );
     }

+ 3 - 3
tests/TestCase/ORM/QueryTest.php

@@ -571,7 +571,7 @@ class QueryTest extends TestCase
         ]);
         $query = new Query($this->connection, $table);
 
-        $results = $query->select()->contain('Tags')->enableHydration(false)->toArray();
+        $results = $query->select()->contain('Tags')->disableHydration()->toArray();
         $expected = [
             [
                 'id' => 1,
@@ -632,7 +632,7 @@ class QueryTest extends TestCase
 
         $results = $query->select()
             ->contain(['Tags' => ['conditions' => ['Tags.id' => 3]]])
-            ->enableHydration(false)
+            ->disableHydration()
             ->toArray();
         $expected = [
             [
@@ -685,7 +685,7 @@ class QueryTest extends TestCase
 
         $results = $query->repository($table)
             ->select()
-            ->enableHydration(false)
+            ->disableHydration()
             ->matching('Comments', function ($q) {
                 return $q->where(['Comments.user_id' => 4]);
             })