Метод except
Метод except применяется к коллекции Laravel
и возвращает новую коллекцию, из которой исключены
элементы с указанными ключами или значениями.
Первым параметром передаётся массив ключей или значений,
которые нужно исключить. Если передан один ключ,
можно передать его как строку.
Синтаксис
<?php
$collection->except($keys);
?>
Пример
Давайте создадим коллекцию и исключим из неё элемент с ключом 'age':
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
'name' => 'John',
'age' => 30,
'city' => 'New York'
]);
$res = $collection->except('age');
echo $res->toJson();
?>
Результат выполнения кода:
{"name":"John","city":"New York"}
Пример
Давайте исключим несколько элементов по их ключам:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
'id' => 1,
'name' => 'John',
'age' => 30,
'email' => 'john@example.com',
'city' => 'New York'
]);
$res = $collection->except(['age', 'email']);
echo $res->toJson();
?>
Результат выполнения кода:
{"id":1,"name":"John","city":"New York"}
Пример
Метод except также работает с индексированными коллекциями:
<?php
use Illuminate\Support\Collection;
$collection = new Collection(['a', 'b', 'c', 'd', 'e']);
$res = $collection->except([1, 3]);
echo $res->values()->toJson();
?>
Результат выполнения кода:
["a","c","e"]
Пример
Давайте используем метод except с коллекцией моделей Eloquent:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Support\Collection;
class UserController extends Controller
{
public function index()
{
$users = User::all();
$res = $users->except([0, 2]);
return $res;
}
}
?>
Результат выполнения кода:
[{"id":1,"name":"User 2"},{"id":3,"name":"User 4"}]