Было бы проще, если бы вы просто вытянули location_id
из объекта. Кроме того, чтобы исключить множественные попадания в базу данных в этом l oop, я предлагаю вам вытащить коллекцию сотрудников (вытягивая из БД только один раз) перед l oop, а затем найти подходящее место для сотрудника из коллекция.
Как у вас сейчас, вы go обращаетесь к БД в каждом зацикленном приложении, чтобы привлечь сотрудника. Наличие коллекции до того, как l oop устранит все эти попытки.
Я разобью ее на несколько шагов ниже для ясности, но вы можете усилить это, если вы будете sh:
$applications= Application::all();
$employees = Employee::all();
foreach ($applications as $application)
{
$emp = $employees->where('id', $application->id)->first()
$location_id = $emp->location_id;
}
Чтобы поместить местоположение приложения обратно в базу данных, вы можете просто сохранить его в объекте приложения:
foreach ($applications as $application)
{
$emp = $employees->where('id', $application->id)->first()
$location_id = $emp->location_id;
$application->location_id = $location_id;
$application->save();
}
Выше каждый раз выполняется запись в БД, что я и делал пытаясь избежать, но как только вы добьетесь успеха, вы всегда можете исследовать добавление этих приложений в коллекцию и затем сохранить коллекцию. Но это должно привести вас туда, где вы хотите быть.