Вы можете получить driver_license_types напрямую из модели Instructors, добавив эту функцию:
//PathToModel\Instructor.php
public function license_types()
{
return $this->belongsToMany('PathToModel\LicenseTypes', 'instructors_license_types');
}
Также добавьте это в модель LicenseType:
//PathToModel\LicenseTypes.php
public function instructors()
{
return $this->belongsToMany('PathToModel\Instructors', 'instructors_license_types');
}
Таким образом, вы сможете удалить одно из ваших операторов foreach в своем коде:
$user = User::find($id);
if($user->instructor){
$tmp = [];
foreach ($user->instructor->license_types as $data) {
array_push($tmp, [$data->id, $data->type]);
}
$user->types = $tmp;
}
То, что это делает, просто пропускает сводную таблицу (instructos_license_types), для получения дополнительной информации об этом вы можете увидеть документы здесь .