最も人気のある PHP フレームワークの 1 つである Laravel は、データ操作のための強力なメソッドを幅広く提供します。このうち、pluck() と select() はコレクションを扱うときによく使用されます。似ているように見えますが、目的は異なります。この記事では、これら 2 つのメソッドの違いを調べ、それぞれをいつ使用するかを説明し、Laravel 11 での使用法を示す実践的なコーディング例を提供します。
pluck() メソッドは、コレクション内の単一のキーから値を抽出するように設計されています。これは、配列またはオブジェクトのコレクションから特定の属性を取得する場合に特に便利です。
製品のコレクションがあり、製品名だけを抽出したいとします:
$collection = collect([ ['product_id' => 'prod-100', 'name' => 'Desk'], ['product_id' => 'prod-200', 'name' => 'Chair'], ]); // Pluck only the names of the products $plucked = $collection->pluck('name'); $plucked->all(); // Output: ['Desk', 'Chair']
さらに、pluck() を使用して、結果のコレクションにカスタム キーを割り当てることができます:
$plucked = $collection->pluck('name', 'product_id'); $plucked->all(); // Output: ['prod-100' => 'Desk', 'prod-200' => 'Chair']
pluck() メソッドは、ドット表記を使用したネストされた値の抽出もサポートしています:
$collection = collect([ [ 'name' => 'Laracon', 'speakers' => [ 'first_day' => ['Rosa', 'Judith'], ], ], [ 'name' => 'VueConf', 'speakers' => [ 'first_day' => ['Abigail', 'Joey'], ], ], ]); $plucked = $collection->pluck('speakers.first_day'); $plucked->all(); // Output: [['Rosa', 'Judith'], ['Abigail', 'Joey']]
重複キーを持つコレクションを処理する場合、pluck() は各キーに関連付けられた最後の値を使用します:
$collection = collect([ ['brand' => 'Tesla', 'color' => 'red'], ['brand' => 'Pagani', 'color' => 'white'], ['brand' => 'Tesla', 'color' => 'black'], ['brand' => 'Pagani', 'color' => 'orange'], ]); $plucked = $collection->pluck('color', 'brand'); $plucked->all(); // Output: ['Tesla' => 'black', 'Pagani' => 'orange']
Laravel の select() メソッドは SQL の SELECT ステートメントに似ており、コレクションから複数のキーを選択し、それらのキーのみを新しいコレクションとして返すことができます。
名前と役割の両方を取得するユーザーのコレクションを考えてみましょう:
$users = collect([ ['name' => 'Taylor Otwell', 'role' => 'Developer', 'status' => 'active'], ['name' => 'Victoria Faith', 'role' => 'Researcher', 'status' => 'active'], ]); $selectedUsers = $users->select(['name', 'role']); $selectedUsers->all(); // Output: [ // ['name' => 'Taylor Otwell', 'role' => 'Developer'], // ['name' => 'Victoria Faith', 'role' => 'Researcher'], // ]
select() を使用すると、コレクションから一度に複数の属性を取得できます。
目的:
戻り構造体:
使用法:
:
の場合に pluck() を使用します:
の場合に select() を使用しますLaravel 11 では、pluck() と select() の両方がコレクションを操作する柔軟な方法を提供します。 pluck() は単一の属性の抽出を簡素化しますが、select() を使用すると、複数の属性を操作する必要がある場合により詳細に制御できます。これら 2 つの方法の違いを理解すると、データ操作プロセスを最適化し、よりクリーンで効率的なコードを作成できるようになります。
pluck() と select() の両方をマスターすると、Laravel アプリケーションで複雑なデータ構造を簡単に処理できるようになります。コーディングを楽しんでください!
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3