Connexion à une base de données MySQL avec Laravel
Connexion à une base de données MySQL avec Laravel
-
Objectifs
- Etre capable de se connecter à une base de données avec Laravel
-
Présentation
- Le Framework Laravel permet une interaction très facile avec les BD à travers une variété de backends de BD qui permettent d’utiliser soit le langage SQL brut, un Query Builder très fluide et l’ORM Eloquent.
- Laravel supporte initialement quatre SGBD :
- MySQL
- PostgreSQL
- SQLite
- SQL Server
- Dans ce cours, nous utiliserons MySQL, qui est l’une des plateformes les plus populaires et gratuites pour
développement. - Vous pouvez également utiliser d’autres plates-formes de base de données si vous le souhaitez. Laravel est très intelligent, il faut prendre soin de la syntaxe SQL pour vous.
- Pour configurer notre base de données, allons dans config/, ouvrez le fichier database.php et jetez un œil à:
- Laravel utilise The PHP Data Objects (PDO), qui est une interface légère et cohérente pour accéder bases de données en PHP.
-
créer une base de données MySQL
- Nous devons d’abord créer une base de données. Nous allons donc démarrer le serveur Apache et MySQL à partir du panneau de configuration WampServer.
- Ouvrez n’importe quel navigateur Web, comme Chrome, et saisissez localhost/phpmyadmin dans URL.
- Maintenant, cliquez sur l’ onglet Bases de données et là, écrivez la base de données nommée gestionApprenants et cliquez sur créer.
- Dans ce cours, je vais utiliser phpMyAdmin pour créer une nouvelle base de données qui se connectera à l’application laravel.
-
Configuration de la base de données dans Laravel
- Dans un premier temps, nous avons besoin de paramétrer l’accès à la base de données. C’est donc le pré-requis avoir une base de données opérationnelle avec les bons droits d’accès…
- Toutes les configurations de la base de données prise en charge sont stockées dans config/database.php. Ce fichier contient des détails spécifiques à la connexion à une base de données.
- Ce fichier spécifie également la connexion par défaut pour une base de données qui est MySQL.
- Mais nous pouvons spécifier les configurations d’environnement de base de données dans le fichier .env du répertoire racine de l’application.
- Des paramètres tels que
port
,database name
,username
,password
, etc. peuvent être mentionnés dans ce fichier qui prend en charge d’autres tels configs. - Le stockage de données confidentielles comme les informations d’identification dans
.env
est particulièrement utile pour les référentiels git et autres plates-formes de partage. - Comme MySQL est spécifié comme base de données par défaut dans config/database.php, nous n’avons pas besoin de faire de modifications dans ce fichier et nous pouvons donc passer directement au fichier
.env
- Maintenant, vous devrez trouver un fichier nommé
.env
, où vous devrez spécifier les détails du serveur MySQL , comme le nom de la base de données, le nom d’utilisateur, etc. Dans ce fichier, vous devrez rechercher des noms commençant parDB_
. - En cela, vous trouverez la ligne
DB_CONNECTION
= mysql . En dessous se trouvent tous les détails spécifiés pour la connexion à une base de données. - Vous devrez spécifier le nom de la base de données gestionApprenants , que nous avons créée, après DB_DATABASE = et également spécifier le nom d’utilisateur et le mot de passe en fonction de vos besoins. Enregistrez ensuite le fichier.
-
Connecter votre projet Laravel à une base de données MySQL
- La connexion d’un projet laravel à une base de données MySQL est relativement simple. Depuis que nous avons fait l’installation avec WampServer. Il est livré avec MySQL et PHPMyAdmin déjà installés.
- Maintenant, nous allons créer une vue dans le répertoire resources/views avec le nom gestApp.blade.php.
- Écrivez le code ci-dessous dans le fichier.
- Écrivez la route suivante dans le fichier ‘web.php‘ du répertoire ‘routes‘.
- Et maintenant, ouvrez l’URL fournie par l’artisan dans le navigateur avec /gestApp à la fin.
http://127.0.0.1:8000/gestApp
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
Route :: get ('gestApp', function () {
return view('gestApp');
});