В настоящее время я пытаюсь создать функцию, которая вызывает различные объекты 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.