Maison >développement back-end >tutoriel php >Colonne plusieurs colonnes dans les collections Laravel
Laravel propose une approche rationalisée pour récupérer plusieurs colonnes à partir de collections en utilisant la méthode map
. Contrairement à pluck()
, qui est limité aux colonnes uniques, la combinaison map
avec only
offre une flexibilité accrue pour l'extraction des données.
map
avec only
La synergie entre les méthodes map
et only
permet une extraction efficace de plusieurs colonnes spécifiées à partir de collections. Voici comment mettre en œuvre cette technique:
<?php namespace App\Http\Controllers; use App\Models\Article; use Illuminate\Http\Request; class ArticleController extends Controller { public function list() { return Article::take(20)->get()->map(fn($article) => $article->only([ 'title', 'content', 'summary', 'url_path' ])); } }
illustrons cela avec un exemple de système de gestion d'articles:
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->text('summary'); $table->string('url_path'); $table->timestamps(); }); } }; // ArticleSeeder.php use App\Models\Article; use Illuminate\Database\Seeder; class ArticleSeeder extends Seeder { public function run() { Article::create([ 'title' => 'Getting Started', 'content' => 'Full article content here...', 'summary' => 'Quick guide to get started', 'url_path' => 'getting-started' ]); Article::create([ 'title' => 'Advanced Topics', 'content' => 'Advanced content here...', 'summary' => 'Deep dive into features', 'url_path' => 'advanced-topics' ]); } }
La réponse de l'API inclura alors uniquement les champs spécifiés:
[ { "title": "Getting Started", "content": "Full article content here...", "summary": "Quick guide to get started", "url_path": "getting-started" }, { "title": "Advanced Topics", "content": "Advanced content here...", "summary": "Deep dive into features", "url_path": "advanced-topics" } ]
La combinaison map
et only
offre une méthode concise et efficace pour sélectionner plusieurs colonnes à partir de collections Laravel, ce qui entraîne un code plus propre et plus maintenable.
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!