Вы можете использовать аксессоры и мутаторы
namespace App;
use Illuminate\Database\Eloquent\Model;
class Staff extends Model
{
//assuming you have certificates column in staff table to store json data
public function setCertificatesAttribute($certificates)
{
$this->attributes['certificates'] = json_encode($certificates);
}
public function getCertificatesAttribute()
{
if($certificates != null){
return json_decode($certificates, true); //force to array
}
return []; //default empty array
}
}
Теперь, если вы создаете или обновляете персонал
Staff::create([
'name' => 'Staff1',
'certificates' => ['certificate1', 'certificate2']
]);
Тогда он будет автоматически сохранен в виде данных JSON в вашей штатной таблице. И когда вы извлекаете данные, используя $staff->certificates
, он возвращает вам массив.
надеюсь, что это может решить вашу проблему