2014-09-16 4 views
1

Я создаю приложение в Laravel, используя Eloquent ORM для доступа к локальным данным.Eloquent models - основываясь на модели вместо запроса таблицы?

Часть функциональности этого приложения включает в себя выполнение сложных запросов в удаленной базе данных. Существует несколько фиксированных запросов, которые необходимо запустить. Могу ли я создать Eloquent ORM для доступа к данным запроса, например, к локальной табличной модели?

Под этим подразумевается, что я хотел бы обрабатывать запросы, подобные таблицам в моделях ORM, только для удобства, в то время как внутри модели запросы выполняются в удаленной базе данных для извлечения данных. Они будут доступны только для чтения.

Или я был бы лучше (от усилий POV), просто выполнив красноречивый SQL-запрос и извлекая данные напрямую, вместо того, чтобы пытаться перевернуть его в более абстрактные модели? Я просто не знаю, насколько мой подход будет бороться с тем, что красноречиво технически предназначено.

Редактирование: Я бы предпочел не создавать представления в удаленной базе данных для обертывания запросов, хотя на первый взгляд это казалось бы яркой идеей.

+0

как вы получаете доступ к удаленной базе данных? –

+0

Laravel позволяет настроить несколько драйверов баз данных и данных аутентификации. Красноречивой модели может быть сказано использовать конкретную базу данных в этом списке. – Jason

+0

По существу это просто «база данных», поэтому ничего особенного в удаленной базе данных по сравнению с локальной базой данных, кроме того, что я не могу начать создавать объекты в удаленной базе данных, рассматриваю ее как доступную только для чтения. – Jason

ответ

0

В конце концов, я просто создал запросы к удаленной базе данных с помощью построителя запросов. Это дало мне удаленные данные для игры, а не для моделей Eloquent. Он служил своей цели, но я подозреваю, что, возможно, захочу вернуться в будущем.

В конце концов, речь идет о создании правильного количества абстракций в каждом слое приложения, без чрезмерно усложняющих вещей.

1

Я столкнулся с аналогичной дилеммой, поскольку я хочу создать интерфейс поиска для своего приложения. Я решил создать представление БД, используя класс миграции, чтобы сделать мое развертывание простым. Мое обоснование для установки Модели для представления заключается в том, чтобы избежать кластера отношений. Я предполагаю, что представление будет передавать только данные, которые мне действительно нужны, и сделать мою модель более эффективной.

Для того, чтобы модель оставалась только для чтения, я последовал этому примеру https://gist.github.com/scrubmx/d21b58e6222e515a3bf7

Смежные вопросы