Skip to content

Instantly share code, notes, and snippets.

@finagin
Created November 26, 2017 22:42
Show Gist options
  • Select an option

  • Save finagin/bd694faeb7bbe5b0b846c523ca7b91e7 to your computer and use it in GitHub Desktop.

Select an option

Save finagin/bd694faeb7bbe5b0b846c523ca7b91e7 to your computer and use it in GitHub Desktop.
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
public function other()
{
return $this->belongsTo(Other::class);
}
public function getOtherAttribute()
{
if ($this->is_admin) {
return $this->other()->get();
} else {
if (preg_match('/^get(.*)Attribute$/', __FUNCTION__, $matches) == 1) {
throw RelationNotFoundException::make($this->getModel(), $matches[1]);
} else {
throw new Exception('Unknown exception.');
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment