public StatementPrefetch::current()
Return the current row formatted according to the current fetch style.
This is the core method of this class. It grabs the value at the current array position in $this->data and format it according to $this->fetchStyle and $this->fetchMode.
Return value
mixed The current row formatted as requested.
File
- core/lib/Drupal/Core/Database/StatementPrefetch.php, line 268
Class
- StatementPrefetch
- An implementation of StatementInterface that prefetches all data.
Namespace
Drupal\Core\Database
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | public function current() { if (isset( $this ->currentRow)) { switch ( $this ->fetchStyle) { case \PDO::FETCH_ASSOC: return $this ->currentRow; case \PDO::FETCH_BOTH: // \PDO::FETCH_BOTH returns an array indexed by both the column name // and the column number. return $this ->currentRow + array_values ( $this ->currentRow); case \PDO::FETCH_NUM: return array_values ( $this ->currentRow); case \PDO::FETCH_LAZY: // We do not do lazy as everything is fetched already. Fallback to // \PDO::FETCH_OBJ. case \PDO::FETCH_OBJ: return (object) $this ->currentRow; case \PDO::FETCH_CLASS | \PDO::FETCH_CLASSTYPE: $class_name = array_unshift ( $this ->currentRow); // Deliberate no break. case \PDO::FETCH_CLASS: if (!isset( $class_name )) { $class_name = $this ->fetchOptions[ 'class' ]; } if ( count ( $this ->fetchOptions[ 'constructor_args' ])) { $reflector = new \ReflectionClass( $class_name ); $result = $reflector ->newInstanceArgs( $this ->fetchOptions[ 'constructor_args' ]); } else { $result = new $class_name (); } foreach ( $this ->currentRow as $k => $v ) { $result -> $k = $v ; } return $result ; case \PDO::FETCH_INTO: foreach ( $this ->currentRow as $k => $v ) { $this ->fetchOptions[ 'object' ]-> $k = $v ; } return $this ->fetchOptions[ 'object' ]; case \PDO::FETCH_COLUMN: if (isset( $this ->columnNames[ $this ->fetchOptions[ 'column' ]])) { return $this ->currentRow[ $this ->columnNames[ $this ->fetchOptions[ 'column' ]]]; } else { return ; } } } } |
Please login to continue.