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 :
<code class="language-php">use App\Models\Post; $posts = Post::all();</code>
Cela renverra une collection. Vous pouvez accéder aux données à l'aide de foreach
boucles ou d'autres méthodes de collecte :
<code class="language-php">foreach ($posts as $post) { echo $post->title; }</code>
2. Obtenez un seul enregistrement
1. find()
Méthode : Obtenez un seul enregistrement basé sur la clé primaire.
<code class="language-php">$post = Post::find(1); if ($post) { echo $post->title; }</code>
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.
<code class="language-php">$post = Post::findOrFail(1);</code>
3. first()
Méthode : Obtenez le premier enregistrement qui remplit les conditions.
<code class="language-php">$post = Post::where('status', 'published')->first();</code>
4. firstOrFail()
Méthode : Obtenez le premier enregistrement qui remplit les conditions. Si l'enregistrement n'existe pas, une exception 404 sera levée.
<code class="language-php">$post = Post::where('status', 'published')->firstOrFail();</code>
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 :
<code class="language-php">$posts = Post::where('status', 'published')->get();</code>
2. Conditions multiples :
<code class="language-php">$posts = Post::where('status', 'published') ->where('user_id', 1) ->get();</code>
3. orWhere
Méthode :
<code class="language-php">$posts = Post::where('status', 'published') ->orWhere('status', 'draft') ->get();</code>
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 :
<code class="language-php">$posts = Post::select('title', 'content')->get();</code>
5. Pagination
Utilisez la méthode paginate()
pour obtenir des données dans les pages :
<code class="language-php">$posts = Post::paginate(10);</code>
Afficher les liens de pagination dans les modèles Blade :
<code class="language-blade">{{ $posts->links() }}</code>
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 :
<code class="language-php">Post::chunk(100, function ($posts) { foreach ($posts as $post) { echo $post->title; } });</code>
7. Tri des résultats (Commande)
Utilisez la méthode orderBy()
pour trier dans l'ordre spécifié :
<code class="language-php">$posts = Post::orderBy('created_at', 'desc')->get();</code>
8. Limite et décalage
Utilisez les méthodes take()
ou limit()
et skip()
pour limiter le nombre d'enregistrements récupérés :
<code class="language-php">$posts = Post::take(5)->get(); // 获取前 5 条记录 $posts = Post::skip(10)->take(5)->get(); // 跳过前 10 条,获取接下来的 5 条</code>
9. Fonctions d'agrégation (Agrégats)
1. Compte :
<code class="language-php">$count = Post::count();</code>
2. Valeur maximale :
<code class="language-php">$maxViews = Post::max('views');</code>
3. Valeur minimale :
<code class="language-php">$minViews = Post::min('views');</code>
4. Moyenne :
<code class="language-php">$avgViews = Post::avg('views');</code>
5. Somme :
<code class="language-php">$totalViews = Post::sum('views');</code>
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 :
<code class="language-php">$posts = Post::with('comments')->get();</code>
2. Précisez la relation :
<code class="language-php">$posts = Post::with(['comments', 'user'])->get();</code>
11. Requêtes brutes
Exécutez des requêtes SQL personnalisées à l'aide de la façade DB de Laravel :
<code class="language-php">use App\Models\Post; $posts = Post::all();</code>
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!