@Apostol63

Почему __construct выдает ошибку?

Добрый день
Уже всю голову сломал, но причину не могу понять

Есть тестовый метод контроллера
public function testop() {
		$toQuery = [
			'skip' => 1,
			'onPage' => 5,
			'sort' => 'desc',
			'sortField' => 'id',
			'action' => 'miss',
			'filter' => 'miss',
			'deleteIds' => [],
		];
		$db = new Querydb('doc_table', $toQuery);
		$db->test();
	}

И есть методы модели Querydb, констракт и test
public function __construct($dbTableName, $serverParams) {
		$this->table = $dbTableName;
		$this->skip = $serverParams['skip'];
		$this->onPage = $serverParams['onPage'];
		$this->sort = $serverParams['sort'];
		$this->sortField = $serverParams['sortField'];
		$this->action = $serverParams['action'];
		$this->filter = $serverParams['filter'];
		$this->deleteIds = $serverParams['deleteIds'];
	}

public function test() {
		$dataDb = $this->where('status', 1)->orderBy($this->sortField, $this->sort)->skip(0)->take($this->onPage)->get();
		echo '<pre>';
		print_r($dataDb);
		exit();
	}

Так вот проблема в том, что у меня выдается следующая ошибка
Too few arguments to function App\Models\Querydb::__construct(), 1 passed in C:\OSPanel\domains\dis\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php on line 392 and exactly 2 expected

Хотя я делал всевозможные проверки
Проверял то, что приходит в констракт
В методе test выводил свойства, которые устанавливаются в констракте (с ними все хорошо, они есть и заданы)
Потом я просто убрал констракт, сделал обычный метод, в который передавал те же самые переменные, что и в констракт и в самом методе выполнялись те же действия, что и в констракте. И после этого метода уже вызывал метод test. И так все работало! Я, видимо, что-то упускаю.
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Arik
Ваша проблема именно в том что наследуетесь от Model (Illuminate\Database\Eloquent)

И вам подсказывают ошибку на 392 строке, если открыть, то там видно что запускается создание экземпляра и передача ему массива атрибутов, а вы конструктор заточили под себя

мне кажется вы неверно юзаете Модели Лары или в целом Лару, можно услышать саму задачу которую делаете?
Ответ написан
Ваш ответ на вопрос

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

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