Créer une vue MySQL à l’aide des fichiers de migration

Dans le monde des bases de données, une vue est une table virtuelle créée à partir de requêtes sur des tables existantes.

La création d'une vue permet notamment de visualiser plus facilement les données obtenues par une requête complexe. La requête sera entrée une fois pour toutes dans la vue. Il sera ensuite possible de consulter les données de la vue comme s'il s'agissait d'une table.

▼Publicité

La création d'une vue sous Laravel passe par le même processus que la création d'une table : le fichier de migration.

Console Vagrant SSH

php artisan make:migration create_unevue_view

Dans la méthode up(), on utilisera un DB::statement() afin d'y coder l'instruction CREATE VIEW. Dans le down(), on fera un DROP VIEW.

Ex :

Fichier de migration (PHP)

class CreateUnevueView extends Migration

{

    public function up()

    {

        DB::statement("CREATE VIEW vue_produits_categories AS SELECT produits.id AS produit_id, produits.code AS produit_code ...");

    }

 

    public function down()

    {

        DB::statement("DROP VIEW vue_produits_categories");

    }

}

Attention : Si vous créez une vue avec SELECT *, vous devez savoir que les champs des tables seront ajoutés de façon définitive dans la vue. Si des champs sont ajoutés par la suite dans une des tables, ces champs ne seront pas ajoutés à la vue.

Pour éviter toute confusion, il est préférable de lister les champs qui feront partie de la vue.

Catégories