مجموعه‌های لاراول یا Laravel Collections یکی از قدرتمند‌ترین و بهترین مقررات فریم‌ورک لاراول هستند. در این سری آموزش های لاراول، برخی تکنیک‌ها که می‌توانند در هنگام کار با مجموعه‌های لاراول کاربردی باشند را بررسی خواهیم کرد.

محتویات این سری آموزش شامل عناوین ذیل خواهد بود:

  1. کلاس Collection
  2. ایجاد یک مجموعه جدید
  3. مجموعه‌های ORM
  4. ساخت نمونه مجموعه خود
  5. یافتن داده‌ها
  6. فیلتر کردن داده‌ها
  7. چینش / مرتب کردن داده‌ها
  8. گروه‌بندی داده‌ها
  9. دریافت زیر مجموعه‌ای از داده‌ها
  10. تکرار داده‌ها
  11. استفاده از یک مجموعه به عنوان یک Set
  12. نتیجه گیری

 

کلاس Collection

کلاس  Illuminate\Support\Collection یک گلچینی از دستوران قابل قبول برای کار با آرایه‌ها را فراهم کرده است.

کلاس Collection رابط‌های PHP و Laravel مانند موارد زیر را پیاده‌سازی می‌کند:

  • ArrayAccess - رابطی برای فراهم کردن قابلیت دسترسی به آبجکت‌های آرایه.
  • IteratorAggregate - رابطی برای ایجاد یک Iterator.
  • JsonSerializable

 

ایجاد یک مجموعه جدید

یک مجموعه می‌تواند با استفاده از متد collect() یا با استفاده از کلاس Illuminate\Support\Collection از یک آرایه ساخته شود.

$newCollection = collect([1, 2, 3, 4, 5]);

و مثالی دیگر:

<?php

namespace app\Http\Controllers;

use Illuminate\Support\Collection;

class TestController extends Controller

{

    /**

     * با استفاده از متد مورد نظر، یک مجموعه جدید بسازید.

     */

    public function helperCollection()

    {

        $newCollection = collect([1, 2, 3, 4, 5]);

        dd($newCollection);

    }

    /**

     * با استفاده از نمونه کلاس مجموعه، یک مجموعه جدید بسازید.

     */

    public function classCollection()

    {

        $newCollection = new Collection([1, 2, 3, 4, 5]);

        dd($newCollection);

    }

}

مسلما متد collect() ساده تر است.

 

مجموعه‌های ORM

Laravel Eloquent ORM (در آینده نزدیک دوره ویژه ای در وبسایت همیار لاراول خواهیم داشت) نیز داده‌ها را به عنوان مجموعه بر می‌گرداند.

برای نمایش چنین بازخوردی، یک دیتابیس را راه‌اندازی خواهم کرد.

سپس یک جدول کاربر با تنظیمات پیشفرض که در لاراول وجود دارد می‌سازیم و 10 رکورد را در آن وارد می‌کنیم.

/**

     * دریافت لیستی از کاربران، از مجموعه مربوطه.

     */

    public function getUsers()

    {

        $users = User::all();

        dd($users);

    }

متد controller زیر، یک مجموعه لاراول با لیستی از تمام کاربران را نمایش می‌دهد.

سپس می‌توانید به سادگی و با استفاده از نشانه‌گذاری با پیکان‌ها، به یک صفت مجموعه دسترسی داشته باشید. برای مثال، برای دریافت نام کوچک کاربر از مجموعه $users، می‌توانیم به این صورت عمل کنیم:

/**

     * دریافت نام اولین کاربر

     */

    public function firstUser()

    {

        $user = User::first();

        dd($user->name);

    }

 

ساخت نمونه مجموعه خود:

از این داده‌های موجود در جدول کاربران، و برخی مجموعه‌های سفارشی برای نمایش، استفاده خواهیم کرد. در حالیکه که ما این اطلاعات را به صورت دستی می‌سازیم، می‌توانیم با استفاده از Model Factory در لاراول نیز آن‌ها را بسازیم.

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Chasity Tillman
            [email] => qleuschke@example.org
            [age] => 51
            [created_at] => 2016-06-07 15:50:50
            [updated_at] => 2016-06-07 15:50:50

        )
    ...
)

 

این سری آموزش تا روز های آینده بصورت کامل بر روی وب سایت آموزشی همیار لاراول قرار گرفت. منتظرمون باشید.