Laravel Eloquent fournit des méthodes pratiques et lisibles pour interagir avec la base de données, facilitant ainsi l'obtention des données de la base de données. Plusieurs techniques d'acquisition de données sont présentées ci-dessous :
1. Obtenez tous les enregistrements
Utilisez la méthode all()
pour obtenir tous les enregistrements du tableau :
use App\Models\Post; $posts = Post::all();
Cela renverra une collection. Vous pouvez accéder aux données à l'aide de foreach
boucles ou d'autres méthodes de collecte :
foreach ($posts as $post) { echo $post->title; }
2. Obtenez un seul enregistrement
1. find()
Méthode : Obtenez un seul enregistrement basé sur la clé primaire.
$post = Post::find(1); if ($post) { echo $post->title; }
2. findOrFail()
Méthode : Obtenez un seul enregistrement basé sur la clé primaire. Si l'enregistrement n'existe pas, une exception 404 sera levée.
$post = Post::findOrFail(1);
3. first()
Méthode : Obtenez le premier enregistrement qui remplit les conditions.
$post = Post::where('status', 'published')->first();
4. firstOrFail()
Méthode : Obtenez le premier enregistrement qui remplit les conditions. Si l'enregistrement n'existe pas, une exception 404 sera levée.
$post = Post::where('status', 'published')->firstOrFail();
3. Utilisez les conditions de requête pour filtrer les enregistrements
Utilisez where
et d'autres instructions conditionnelles pour filtrer les données.
1. where
Méthode :
$posts = Post::where('status', 'published')->get();
2. Conditions multiples :
$posts = Post::where('status', 'published') ->where('user_id', 1) ->get();
3. orWhere
Méthode :
$posts = Post::where('status', 'published') ->orWhere('status', 'draft') ->get();
4. Sélectionnez des champs spécifiques
Eloquent obtient tous les champs par défaut. Utilisez la méthode select()
pour sélectionner un champ spécifique :
$posts = Post::select('title', 'content')->get();
5. Pagination
Utilisez la méthode paginate()
pour obtenir des données dans les pages :
$posts = Post::paginate(10);
Afficher les liens de pagination dans les modèles Blade :
{{ $posts->links() }}
6. Regroupement des données
Lors du traitement de grandes quantités de données, l'utilisation de la mémoire peut être efficacement réduite :
Post::chunk(100, function ($posts) { foreach ($posts as $post) { echo $post->title; } });
7. Tri des résultats (Commande)
Utilisez la méthode orderBy()
pour trier dans l'ordre spécifié :
$posts = Post::orderBy('created_at', 'desc')->get();
8. Limite et décalage
Utilisez les méthodes take()
ou limit()
et skip()
pour limiter le nombre d'enregistrements récupérés :
$posts = Post::take(5)->get(); // 获取前 5 条记录 $posts = Post::skip(10)->take(5)->get(); // 跳过前 10 条,获取接下来的 5 条
9. Fonctions d'agrégation (Agrégats)
1. Compte :
$count = Post::count();
2. Valeur maximale :
$maxViews = Post::max('views');
3. Valeur minimale :
$minViews = Post::min('views');
4. Moyenne :
$avgViews = Post::avg('views');
5. Somme :
$totalViews = Post::sum('views');
10. Récupération de relation personnalisée
Eloquent prend en charge l'obtention de données à partir d'autres modèles via des relations.
1. Chargement impatient :
$posts = Post::with('comments')->get();
2. Précisez la relation :
$posts = Post::with(['comments', 'user'])->get();
11. Requêtes brutes
Exécutez des requêtes SQL personnalisées à l'aide de la façade DB de Laravel :
use App\Models\Post; $posts = Post::all();
Ces méthodes fournissent des méthodes d'acquisition de données flexibles pour répondre à divers besoins d'exploitation de bases de données. Veuillez choisir la méthode appropriée en fonction de la situation réelle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!