Laravel – Les requêtes simples en base de données

Laravel – Les requêtes simples en base de données

29 mars 2018 Laravel MVC 0

Comme dans tout site dont les données sont issues d’une base de données, nous allons devoir réaliser des requêtes.

Vous connaissez certainement les requêtes mySQL écrites sous la forme « select * from articles where auteur = ‘brouette’ order by ‘date’ asc » par exemple.

Avec Laravel, ceci ne sera plus nécessaire. En effet, nous allons utiliser nos modèles et le système intégré de Laravel pour effectuer nos sélections.

Principe de l’ORM Eloquent

Avec le système Eloquent, nous allons pouvoir utiliser les modèles créés dans un article précédent et effectuer facilement tout type de requête plus ou moins complexe en quelques lignes.

Partons du principe que nous avons créé un modèle qui permette d’accéder à la table des articles de notre blog. Nous allons voir de quelle manière accéder aux données.

Il faut tout d’abord déclarer l’utilisation du modèle dans notre contrôleur comme ci-dessous

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\ArticlesModel as Articles; // Nous déclarons l'utilisation du modèle ArticlesModel, qu'on appellera Articles pour la suite

class articlesController extends Controller
{
    public function articles(){
		// Ici se trouvera le code qui récupèrera la liste des articles
		// la variable $articles contient une liste d'articles
	    return view('articles', ['listeArticles' => $articles]); // La vue articles aura accès à la liste sous le nom listeArticles
    }
	public function article(){
		// Ici se trouvera le code qui récupèrera un article
		// la variable $article contient un seul article
	    return view('article', ['article' => $article]); // La vue article aura accès à un seul article sous le nom article
    }
}
Langage : PHP - Fichier app/Http/Controllers/articlesController.php

Avec cet ajout, nous pouvons maintenant créer nos requêtes.

Les exemples suivants pourront prendre place aux lignes 11 ou 16 du code ci-dessus.

Sélections simples

Pour sélectionner des données, nous allons toujours utiliser le même type de syntaxe. Pour commencer, sélectionnons juste tous les enregistrements de la table. Nous écrirons donc :

$articles = Articles::all();
// Cette ligne est équivalente à select * from articles

Nous pouvons bien sûr ajouter des contraintes à notre requête, comme un where, un order by

Voici quelques exemples de contraintes

// Ajout d'une clause where 'auteur' = 'brouette'
$articles = Articles::where('auteur', 'brouette')->get();

// Ajout d'un tri
$articles = Articles::orderBy('date', 'desc')->get();

// Ajout d'une limite (sur l'exemple avec where, par exemple)
$articles = Articles::where('auteur', 'brouette')->take(10)->get();

// Il est bien sûr possible de cumuler les contraintes
$articles = Articles::where('auteur', 'brouette')->orderBy('date', 'desc')->take(10)->get();

// Ne prendre que le 1er résultat (sur l'exemple avec where, par exemple)
$articles = Articles::where('auteur', 'brouette')->first();

// Récupérer l'enregistrement qui a la clé primaire 3 (par exemple)
$articles = Articles::find(3);

// Récupérer les enregistrement qui ont la clé primaire 3, ou 5, ou 9 (par exemple)
$articles = Articles::find([3,5,9]);

Voilà, à suivre, les requêtes « complexes » (jointures, par exemple).

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *