У меня есть адресный стол и стол Kontokorrent. Мне нужно их вернуть и показать на гугл картах.
это мой контроллер:
$addresses = Address::whereHas('kontokorrent', function($query) {
$query->ktoArt('D')->mandant(1)->aktiv();
});
//Conditional
if(!! Auth::user()->activeAddress) {
$addresses->where('Aktiv', '<>', 0);
}
$addressesFormated = $addresses->get()->map(function($item, $key) {
return [
'addresse' => $item->Adresse,
'kto' => $item->kontokorrent->Kto,
'name' => $item->Name1,
'anschrift' => ['strasse' => $item->LieferStrasse, 'plz' => $item->LieferPLZ, 'ort' => $item->LieferOrt, 'land' => $item->LieferLand],
'telefon' => $item->Telefon,
'email' => $item->Email,
'coords' => ["lat" => $item->USER_CCgeoLatitude, "lng" => $item->USER_CCgeoLongitude],
'umsatz' => number_format(Umsatz::year($item->kontokorrent->Kto, date('Y')),2),
'vorjahresUmsatz' => number_format(Umsatz::year($item->kontokorrent->Kto, date('Y')-1),2),
'letzteBestellung' => \Carbon\Carbon::parse($item->kontokorrent->LetzterUmsatz)->toDateString()
];
});
dd($addressesFormated);
Я перебираю коллекцию и передаю каждое значение как key=>value
.
Это работает, но очень медленно. Мне нужно> 30 секунд, когда я пересекаю более 10 тысяч строк.
может быть, я должен использовать энергичную загрузку, чтобы увеличить производительность.
к сожалению, я не имею отношения
отношения: массив: 1 [
"контокоррент" => ноль
]
в массиве, когда я пытаюсь это сделать в моем контроллере:
$addresses = $addresses->with('kontokorrent:Kto')->take(10)->get(['Name1', 'LieferStrasse', 'LieferLand', 'LieferOrt', 'LieferPLZ', 'Telefon', 'EMail', 'USER_CCgeoLatitude', 'USER_CCgeoLongitude']);
dd($addresses);
Я также пытался вставить Kto
в функцию ->get()
. Но я получаю ошибку.