Я использую внешний API с помощью Guzzle и сохраняю его в базе данных:
use App\Employee;
public function handle()
{
$client = new GuzzleHttp\Client();
$res = $client->request('GET','https://api.employees.net/allemployees');
$clientdatas = json_decode($res->getBody()->getContents(), true);
foreach($clientdatas as $clientdata)
{
$employee = HrEmployee::updateOrCreate([
'employee_code' => $clientdata['staff_id'],
],
[
'first_name' => $clientdata['first_name'],
'last_name' => $clientdata['last_name'],
'other_name' => $clientdata['middle_name'],
'dept_code' => $clientdata['department_id']
]);
}
}
В настоящее время у меня есть это if
'employee_code' => $ clientdata ['staff_id' ],
существует, он должен обновлять
[
'first_name' => $clientdata['first_name'],
'last_name' => $clientdata['last_name'],
'other_name' => $clientdata['middle_name'],
'dept_code' => $clientdata['department_id']
]);
, он должен сохранять новые записи.
Однако я хочу изменить его, если
' employee_code '=> $ clientdata [' staff_id '], существует, он должен обновиться
[
'first_name' => $clientdata['first_name'],
'last_name' => $clientdata['last_name'],
'other_name' => $clientdata['middle_name'],
]);
за исключением
[
'dept_code' => $clientdata['department_id']
]);
Если нет, он должен сохранить все
Как добиться этого?
Спасибо