Intereting Posts
Загрузите блок за пределы Magento и примените текущий шаблон uuid_binary ошибка проверки формы: выбор не существует или не является уникальным Меню Joomla не отображается Переменные сеанса PHP не поддерживаются Как я могу выполнить функцию «Сохранить ссылку как» одним щелчком мыши по ссылке? stream_socket_enable_crypto () Ошибка в почтовой программе php Как вы исключаете пролог XML из вывода? Laravel 5 – проверьте, отправляется ли почта Измените задание cron на вызов через url (curl) для вызова через локальную командную строку (PHP) HTML / PHP, выбирая значение из раскрывающегося меню и извлекая связанную строку и вывешивая все данные из этой строки как отключить сеанс при закрытии веб-страницы в php Как заменить все перерывы строк XHTML / HTML (<br>) на новые строки? Curl API PhoneGap из командной строки в php Разделить строку на переменные PHP Показать несколько видов в одной функции в Laravel

Динамические запросы Laravel в массиве Eloquent models

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

Related of "Динамические запросы Laravel в массиве Eloquent models"