Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

If you want to group result by some condition which isn’t a direct column in your database, you can do that by providing a closure function.

For example, if you want to group users by day of registration, here’s the code:

$users = User::all()->groupBy(function($item) {
    return $item->created_at->format('Y-m-d');
});

⚠️ Notice: it is done on a Collection class, so performed AFTER the results are fetched from the database.

Bu kod neden kullanılır ve ne zaman kullanılır.

  • mgsmus bunu yanıtladı.
  • aghabalaguluzade Mongodb değil de MySQL ya da PostgreSQL gibi bir veri tabanı kullanıyorsanız veriyi şu şekilde alırsınız:

    [
        {
            "id": 1,
            "name": "Ali",
            "department": "A"
        },
        {
            "id": 2,
            "name": "Ayşe",
            "department": "A"
        },
        {
            "id": 3,
            "name": "Berk",
            "department": "B"
        },
        {
            "id": 4,
            "name": "Buse",
            "department": "B"
        },
        {
            "id": 5,
            "name": "Ahmet",
            "department": "A"
        }
    ]

    Şu şekilde alamazsınız ya da almak çok zor ve karmaşıktır:

    {
        "A": [
            {
                "id": 1,
                "name": "Ali"
            },
            {
                "id": 2,
                "name": "Ayşe"
            },
            {
                "id": 5,
                "name": "Ahmet"
            }
        ],
        "B": [
            {
                "id": 3,
                "name": "Berk"
            },
            {
                "id": 4,
                "name": "Buse"
            }
        ]
    }

    O yüzden veriyi basit bir sorgu ile Collection olarak aldıktan sonra Collection yöntemleri ile daha basit bir şekilde istediğiniz formata getirebilirsiniz:
    https://laravel.com/docs/10.x/collections

    Collection normal bir array'e göre daha fazla RAM tüketeceği için çok fazla kayıt barındıran işlemlerde kullanmaktan kaçınmalısınız.

    aghabalaguluzade Mongodb değil de MySQL ya da PostgreSQL gibi bir veri tabanı kullanıyorsanız veriyi şu şekilde alırsınız:

    [
        {
            "id": 1,
            "name": "Ali",
            "department": "A"
        },
        {
            "id": 2,
            "name": "Ayşe",
            "department": "A"
        },
        {
            "id": 3,
            "name": "Berk",
            "department": "B"
        },
        {
            "id": 4,
            "name": "Buse",
            "department": "B"
        },
        {
            "id": 5,
            "name": "Ahmet",
            "department": "A"
        }
    ]

    Şu şekilde alamazsınız ya da almak çok zor ve karmaşıktır:

    {
        "A": [
            {
                "id": 1,
                "name": "Ali"
            },
            {
                "id": 2,
                "name": "Ayşe"
            },
            {
                "id": 5,
                "name": "Ahmet"
            }
        ],
        "B": [
            {
                "id": 3,
                "name": "Berk"
            },
            {
                "id": 4,
                "name": "Buse"
            }
        ]
    }

    O yüzden veriyi basit bir sorgu ile Collection olarak aldıktan sonra Collection yöntemleri ile daha basit bir şekilde istediğiniz formata getirebilirsiniz:
    https://laravel.com/docs/10.x/collections

    Collection normal bir array'e göre daha fazla RAM tüketeceği için çok fazla kayıt barındıran işlemlerde kullanmaktan kaçınmalısınız.