PHP Laravel Передача модели в качестве параметра функции - PullRequest
1 голос
/ 27 марта 2020

Мне нужно передать модель в функцию, но кажется, что мое решение не является правильным, потому что я получаю сообщение об ошибке ниже от PHPStorm

ожидает параметр типа Illuminate \ Database \ Eloquent \ Model, string дано.

это выдержка из моего кода:

 /** Return the model structure
  *
  * @param \Illuminate\Database\Eloquent\Model $model
  * @param array $fillData
  * @return object
  */
public static function fillBasicModelData(Model $model, $fillData){
 ...code...
}

А ниже приведен порядок вызова функции:

$result = self::fillBasicModelData(Filter::class, $emptyFilter);

Obiviously Filter - это Illuminate \ Database \ Eloquent \ Model

, поэтому мой вопрос: как я могу передать модель в функцию без этого предупреждения?

спасибо

1 Ответ

1 голос
/ 27 марта 2020

Фильтр Obiviously - это Illuminate \ Database \ Eloquent \ Model

Нет, это не так. Вы передаете его с Filter::class. Это класс модели, а не экземпляр. По сути, это переводится в строку '\NameSpace\SomeThing\Filter'

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

public static function fillBasicModelData($model_class, $fillData){
 $model = new $model_class($fillData);
 // ...code...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...