Как спрятать поля в Collection?

В Laravel для скрытия полей в коллекции можно использовать метод map() в сочетании с методом forget().

Для начала, предположим, у вас есть коллекция моделей User и вы хотите скрыть поле "password". Вот как можно это сделать:

$users = User::all();

$hiddenFields = ['password'];

$users = $users->map(function ($user) use ($hiddenFields) {
    foreach ($hiddenFields as $field) {
        $user->forget($field);
    }
    return $user;
});

В этом примере сначала мы получаем все модели User в коллекции. Затем мы создаем массив $hiddenFields, содержащий имена полей, которые нам нужно скрыть (в данном случае это только поле "password"). Далее мы используем метод map() для прохода по каждой модели User в коллекции.

Внутри каждого итератора мы используем метод forget(), чтобы удалить каждое поле из массива $hiddenFields из модели User. Метод forget() удаляет указанный элемент из модели. После этого мы возвращаем измененную модель обратно в коллекцию.

Теперь, если вы выведете коллекцию пользователей, поле "password" не будет включено в результат:

$users->each(function ($user) {
    echo $user->name;
    // другие поля, кроме "password"
});

Таким образом, вы можете легко скрыть определенные поля из коллекции моделей в Laravel.