/** * Prepare the database connection instance. * * @param \Illuminate\Database\Connection $connection * @return \Illuminate\Database\Connection */ protected function prepare(Connection $connection) { $connection->setFetchMode($this->app['config']['database.fetch']); if ($this->app->bound('events')) { $connection->setEventDispatcher($this->app['events']); } // The database connection can also utilize a cache manager instance when cache // functionality is used on queries, which provides an expressive interface // to caching both fluent queries and Eloquent queries that are executed. $app = $this->app; $connection->setCacheManager(function () use($app) { return $app['cache']; }); // We will setup a Closure to resolve the paginator instance on the connection // since the Paginator isn't used on every request and needs quite a few of // our dependencies. It'll be more efficient to lazily resolve instances. $connection->setPaginator(function () use($app) { return $app['paginator']; }); // Here we'll set a reconnector callback. This reconnector can be any callable // so we will set a Closure to reconnect from this manager with the name of // the connection, which will allow us to reconnect from the connections. $connection->setReconnector(function ($connection) { $this->reconnect($connection->getName()); }); return $connection; }
/** * {@inheritdoc} */ public function findMask(RequesterInterface $requester, ResourceInterface $resource) { $oldFetchMode = $this->connection->getFetchMode(); $this->connection->setFetchMode(\PDO::FETCH_COLUMN); if (null === ($mask = $this->connection->selectOne('SELECT mask FROM ' . $this->getAclSchema()->getPermissionsTableName() . ' WHERE requester = :requester AND resource = :resource', ['requester' => $requester->getAclRequesterIdentifier(), 'resource' => $resource->getAclResourceIdentifier()]))) { $this->connection->setFetchMode($oldFetchMode); throw new MaskNotFoundException(); } $this->connection->setFetchMode($oldFetchMode); return (int) $mask; }
/** * Set the default fetch mode for the connection. * * NOTE! Crate cannot use PDO::FETCH_CLASS fetch mode, so * we silently change it to PDO::FETCH_ASSOC * * @param int $fetchMode * @return int */ public function setFetchMode($fetchMode) { if ($fetchMode === \PDO::FETCH_CLASS) { $fetchMode = \PDO::FETCH_ASSOC; } parent::setFetchMode($fetchMode); }
/** * Set the default fetch mode for the connection. * * NOTE! Crate cannot use PDO::FETCH_CLASS fetch mode, so * we silently change it to PDO::FETCH_ASSOC * https://crate.io/docs/reference/pdo/usage.html#fetch-modes * * @param int $fetchMode * @return int */ public function setFetchMode($fetchMode, $fetchArgument = null, array $ctorArgs = []) { if ($fetchMode !== \PDO::FETCH_ASSOC) { $fetchMode = \PDO::FETCH_ASSOC; } parent::setFetchMode($fetchMode, $fetchArgument, $ctorArgs); }
/** * Prepare the database connection instance. * * @param Illuminate\Database\Connection $connection * @return Illuminate\Database\Connection */ protected function prepare(Connection $connection) { $connection->setFetchMode($this->app['config']['database.fetch']); $connection->setEventDispatcher($this->app['events']); // We will setup a Closure to resolve the paginator instance on the connection // since the Paginator isn't sued on every request and needs quite a few of // our dependencies. It'll be more efficient to lazily resolve instances. $app = $this->app; $connection->setPaginator(function () use($app) { return $app['paginator']; }); return $connection; }
/** * Prepare the database connection instance. * * @param \Illuminate\Database\Connection $connection * @return \Illuminate\Database\Connection */ protected function prepare(Connection $connection) { $connection->setFetchMode($this->app['config']['database.fetch']); if ($this->app->bound('events')) { $connection->setEventDispatcher($this->app['events']); } // Here we'll set a reconnector callback. This reconnector can be any callable // so we will set a Closure to reconnect from this manager with the name of // the connection, which will allow us to reconnect from the connections. $connection->setReconnector(function ($connection) { $this->reconnect($connection->getName()); }); return $connection; }
/** * {@inheritDoc} */ public function getPhotos(array $photoIds) { $this->connection->setFetchMode(\PDO::FETCH_ASSOC); return $this->connection->table($this->options['photo_table'])->whereIn('id', $photoIds)->get(); }