Publié le 21 Novembre 2020   PHP


Eloquent est un ORM, on peut donc requêter des données sans se préoccuper des requêtes SQL.
Cela peut tout de même être intéressant de voir comment sont récupérées les données, voire pour faire de l'optimisation.

Considérant que Eloquent a été déclaré comme ceci :

$capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($container['settings']['db']);
$capsule->setAsGlobal();
$capsule->bootEloquent();

$container['db'] = function ($container) use ($capsule) {
    return $capsule;
};

on peut accéder à notre objet DB (ici $capsule) dans notre container via $this->db.

Comme on a utilisé sur notre capsule la methode setAsGlobal(), on devra appeler les fonctions enableQueryLog() et getQueryLog() en statique.

$this->db::enableQueryLog();
$orders= Order::where('due_date', '>',  $day_date)->get();
$query = $this->db::getQueryLog();

Catégories d'article