Лучший способ получить объект в foreach l oop in laravel с помощью eloquent? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть некоторые свойства, и я хочу получить объект для каждого свойства, в настоящее время я использую eloquent в foreach l oop, как показано на рисунке, который описывает лучшее ... но это действительно так. не очень хороший подход, потому что, если у меня есть 100 опубликованных свойств, я буду делать 100 обращений к БД ... и это не правильно? Мне нужно предложение и правильное решение этого вопроса?

Заранее спасибо

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Перед foreach вы можете получить все элементы RentalProperty из db следующим образом:

$allRentalProperties = RentalProperty::all();

, а в foreach l oop вы можете получить эти элементы без подключения к базе данных, например:

$propertyObj = $allRenatalProperties -> where('id', $property['id']) -> first(); 

Кроме того, вы можете использовать сокращение массива.

$newArray = [];

это намного проще и удобочитаемее.

0 голосов
/ 20 апреля 2020

Вы можете выполнить сбор массива до l oop:

$propertyIds = Arr::pluck($published_properties, 'id');

Затем вы можете сделать запрос whereIn, чтобы получить только те данные, которые находятся в $published_properties объекте

$propertyObj = RentalProperty::whereIn('id', $propertyIds);

Затем вы можете получить доступ к этому объекту с идентификатором, если вы измените ключ массива с идентификатором записи.

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