ada beberapa cara untuk melakukan append attribut / menambahkan atrribut baru ke dalam model laravel , ini dibutuhkan biasanya saat kita membuat custom respon api
1. Bisa menggunakan magic method
protected $appends = ['roles_origin'];
public function getRolesOriginAttribute() {
return $this->relations['permissions']->pluck('name');
}
setiap model dipanggil maka akan otomatis menambahkan attribut roles_origin .
2. Cara kedua yaitu langsung menggunakan function setAttribute ..
$user= User::find($id);
$user->setAttribute("status","aktif '');
3. Cara ketiga dengan menggunakan map
$permissions_group = PermissionsGroup::with('permissions')->find($request->id);
$permissions_group->permissions->map(function($item ) use ($request){
$role_check = Role::where('name', $request->role)->first();
$item['active'] = $role_check->hasPermissionTo( $item['name']);
return $item;
});
koding diatas akan menambahkan attribut baru dengan key 'active' ke model relasi permissions,
4. Pengunaan map dengan data array
$penilaian = Penilaian::select(['text'])->get();
$array =['ya','tidak','ya'];
$penilaian->each(function($item, $key) use ($array)
$item['jawaban'] = $array[$key];
})->all();
hasilnya :
0 Comments