tachini
@tachini
Программист

Как работать с коллекциями в laravel 5 правильно?

Привет. Меня интересует вопрос по моделях. На моих моделях висит бизнес-логика, и в самих объектах есть состояния, то есть есть поля с данными и методы и когда я создаю модель, мне нужно провести инициализацию. Я думал делать их через конструктор, но почему то у меня были ошибки, уже не помню какие, это было давно, я решил сделать метод init(), и получается где то так
$user = User(); $user->init($id).
И теперь вопрос, когда я хочу использовать коллекции, например
$users = User::all()
, есть ли способ, как нибудь их проинициализировать, более красиво, чем просто через цикл?

Почему то в конструкторе через this не получается узнать данные об объекте, например:
User.php
...
protected $fillable = ['email', 'password']
public function __constuct() {
         var_dump($this->email);
         var_dump($this->getAttribute('email'));
}
...
Route.php
...
Route('test', function() {
         User::all();
})
...

Получаем:
NullNullNullNullNullNullNullNullNullNullNullNull...
  • Вопрос задан
  • 813 просмотров
Решения вопроса 1
AmdY
@AmdY
PHP и прочие вебштучки
Конструктор создаёт Model, а коллекцию возвращают файндеры вроде all, find, first. Вам нужен метод newCollection, и в нём дёргать свою колекцию с перекрытым конструктуром, при этом не забыв в начале дёрнуть родительский конструктор.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы