PHP Profi

Тег #groupBy

LaravelGroupBy по нескольким значениям в Laravel

В Laravel начиная с версии 5.5.29 можно группировать коллекции по нескольким критериям. Давайте посмотрим, что это означает и как это работает.

Подготовка

Итак, эта статья о новой функциональности в фреймворке Laravel. Но прежде чем мы посмотрим как она работает сейчас, давайте посмотрим как она работала раньше. Метод groupBy является методом класса Collection. Для наших примеров я создам немного данных, с которыми мы будем работать. Students будет фабрикой состояний для передаваемого класса User.

// Default user factory which comes with Laravel
$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
        'remember_token' => str_random(10),
    ];
});

// Our new students state
$factory->state(App\User::class, 'students', function (Faker $faker) {
    return [
        'skilllevel' => collect(['beginner', 'intermediate', 'professional'])->random(),
        'teacher' => collect(['Peter', 'Markus', 'Chris'])->random(),
    ];
});
2018-02-05 alek13