Это один запрос к базе данных или два?Разрешено ли после get () в Laravel eloquent? - PullRequest
0 голосов
/ 24 февраля 2019

Разрешено ли после get () в Laravel eloquent?Это один или два запроса к базе данных?

Student :: where ('rank_id', 1) -> get () -> where ('id', 29152);

Ответы [ 3 ]

0 голосов
/ 24 февраля 2019

Эта часть Student::where('rank_id',1)->get() выполнит запрос в базу данных, а ->where('id',29152); отфильтрует коллекцию, уже полученную без повторного запроса.

https://laravel.com/docs/5.7/collections#method-where

0 голосов
/ 24 февраля 2019

Laravel подключается к различным базам данных connections.Так что, пока вы не указываете какое-либо соединение:

  1. Путем явного вызова DB::connection()
  2. Или путем указания protected $connection= 'second_db_connection'; в любой из ваших красноречивых моделей

В основном вы имеете дело только с одним соединением по умолчанию, которое означает одну базу данных.

В вашем запросе Student::where('rank_id',1)->get()->where('id',29152) должно быть:

Student::where('rank_id',1)->where('id',29152)->get();

Это синтаксис, используемый построителем запросов, которыйв формате.->get() используется для применения выборов и фильтров, которые вы применили к запросу.Так что, где должно быть до get().

См. документацию для получения дополнительной помощи.

0 голосов
/ 24 февраля 2019

Да, это разрешено как Student :: where ('rank_id', 1) -> get () возвращает коллекцию, и вы можете связать результаты коллекции, используя where.

См. Illuminate> Support> Collection.php для деталей функций, которые могут использоваться в коллекции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...