Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Есть необходимость создать модель из массива, т.е. данные статичны и хранить их в бд бессмысленно.
Но нужны методы поиска, сортировки и т.д. по массиву данных, для этих нужд я обратился к коллекциям.
Есть например мой массив данных MyCollection, я наследую его от Illuminate\Support\Collection
Выглядит это примерно так:
class MyCollection extends Collection
{
$protected $items = [
['id' => 1],
['id' => 2],
];
public function __construct() {}
}
Создаю экземпляр и обращаюсь к методам, но сортировка, отбор и т.д. не работают
Например, это работает:
(new MyCollection)->all();
А это нет:
(new MyCollection)->where('id', 1);
Сломал уже голову, помогите пожалуйста.
Изменено Hardoff (02.05.2018 14:39:08)
Не в сети
Только написал и до меня дошло
В Collection используется позднее статическое связывание, чтобы моя коллекция заработала нужен костыль типа:
public function __construct($items = null)
{
if ($items !== null)
parent::__construct($items);
}
Может у кого нибудь будет лучше идея, как использовать коллекции, поделитесь плз
Не в сети
Страницы 1