Сначала вы должны следовать подписи конструктора в Model.php
, которая:
public function __construct(array $attributes = [])
{
// ...
}
Итак, ваш model
должен быть таким:
public function __construtor(array $attributes = [], $request = null)
{
parent::__construct($attributes); // This is required
$this->request = $request;
}
Чтобы получить Чтобы вызвать родительский конструктор, необходимо вызвать метод parent::__construct($attributes)
, потому что traits
загрузка выполняется в методе constructor
в файле Model.php
.
Если вы хотите построить свою модель сейчас, тогда вы может использовать что-то вроде этого:
// Assumed you've $request in the scope
$emailModel = new EmailsModel([], $request);
Для большей ясности отметьте Model.php
, вы увидите что-то вроде этого:
public function __construct(array $attributes = [])
{
$this->bootIfNotBooted();
$this->initializeTraits();
$this->syncOriginal();
$this->fill($attributes);
}
В этом случае, bootIfNotBooted
метод загружает черты, поэтому вам нужно вызвать родительский конструктор вручную.
Предложение: вам не нужно передавать $request
в конструкторе, вы можете получить доступ к Request
фасаду из модели если необходимо. Возможно, подумайте о дизайнерском решении ваших моделей. Кроме того, есть методы, доступные для создания, обновления и т. Д. c, вы можете использовать эти методы, не создавая модель вручную.