Skip to content

Instantly share code, notes, and snippets.

@GeniJaho
Last active April 28, 2022 14:27
12 - User settings getters
<?php
/**
* @property array $settings
* @property array $social_links
*/
class User extends Authenticatable
{
...
protected $casts = [
'settings' => 'array'
];
public function setting(string $name, $default = null)
{
if (array_key_exists($name, $this->settings ?? [])) {
return $this->settings[$name];
}
return $default;
}
public function getSocialLinksAttribute(): array
{
return array_filter([
'personal' => $this->setting('social_personal'),
'twitter' => $this->setting('social_twitter'),
'facebook' => $this->setting('social_facebook'),
'instagram' => $this->setting('social_instagram'),
'linkedin' => $this->setting('social_linkedin'),
'reddit' => $this->setting('social_reddit'),
]);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment