В настоящее время я пытаюсь создать функцию, которая вызывает различные объекты scopeQueries, такие как scopeByLocation() или scopeByPublished() для моделей, определенных в массиве. У меня есть основы, работающие через [эту ссылку] [1]. Однако при попытке получить доступ к пользовательским областям запросов, которые определены в соответствующей модели, я получаю следующую ошибку: "Call to undefined method Illuminate\Database\Query\Builder::ForLocation($location)->get()" .
То, что я хочу достичь, – это единственный метод, который проходит через каждую модель в массиве моделей и извлекает и вызывает правильный scopeQuery для модели, что-то вроде этого:
$modelElements = $model::{$queryScope}();
Где, например, $model = 'Modules\News\Models\Article'
И $queryScope – это определенный queryScope в самой модели. Например, scopeForLocation($location) .
Я тестировал $queryScope = 'all' и я получаю результат просто отлично, однако, когда я пытаюсь получить доступ к пользовательскому queryScope ( $queryScope = 'ForLocation($location)->get' ), который существует внутри, например, модель Location , Я получаю следующую ошибку: "Call to undefined method Illuminate\Database\Query\Builder::ForLocation($location)->get()" .
Таким образом, все это происходит в foreach-loop, где вызывается каждая модель в моем массиве-массиве, а затем вызывающая соответствующая queryScope вызывается на модели.
Почему метод $queryScope = 'all' работает на моих динамических моделях, но другие области пропускают ошибку? Я действительно надеюсь, что кто-то может помочь мне в правильном направлении с этой проблемой.
Заранее спасибо,
J. Doe.