Laravel 5 Eloquent пользовательский конструктор не работает

Я пытаюсь заставить собственный конструктор работать с моделью, расширяющей модель Eloquent в Laravel 5.4.
Я уже уверен, что вызвал родительский конструктор, но кажется, что ничто из того, что я делаю, не дает никакого эффекта после этого.

Вот моя функция __construct:

public function __construct(array $attributes = [])
{
parent::__construct($attributes);

$this->users();
}

А вот метод users ():

public function users()
{
$this->users = collect();

foreach($this->employees as $employee) {
$this->users = $this->users->push($employee->user);
}

$this->users = $this->users->unique();
}

В этом примере employee — это класс, который связывает пользователя с магазином, а также определяет его работу. Однако не имеет значения, что я пытаюсь назначить. Я также попытался просто назначить переменную мусора в конструкторе с

$this->foo = 'bar';

или даже пытаясь перезаписать атрибут, такой как

$this->name = 'foobar';

но безрезультатно. Я также попытался просто изменить порядок кода, вызывающего parent :: __ construct (), до или после моего кода, и ничего не изменилось.

Любая помощь будет принята с благодарностью!

0

Решение

Если изменения в вашем дочернем классе не отображаются, даже когда вы загружаете в него мусор, мне кажется, что вы не загружаете нужный класс в контекст?

Возможно, проверьте ваш use операторы в верхней части, чтобы убедиться, что вы загрузили дочерний класс, а не родительский. Было бы легко не заметить, так как они используют один и тот же интерфейс, по сути, никакая синтаксическая ошибка не будет вызвана.

Если все в порядке, то я бы проверил в журналах что-нибудь подозрительное (например, сообщения об ошибках, связанных с функцией).

Также очень полезно использовать dd() Функция вдоль цепочки выполнения, чтобы увидеть тип и содержимое ваших переменных. Вы можете обнаружить, что это было переопределено в некоторый неожиданный момент.

0

Другие решения

В общем, я идиот. Функциональность конструктора работала отлично. Моя проблема заключалась в том, что я пытался установить атрибуты не для нового экземпляра класса, а после его извлечения, что сработало лучше, просто используя методы getAttribute.

Спасибо всем за попытку помочь, но я был просто тупым.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector