diff options
author | Marvin Borner | 2018-05-24 00:31:19 +0200 |
---|---|---|
committer | Marvin Borner | 2018-05-24 00:31:19 +0200 |
commit | 85211481260c076ad5e2889b66465495c33429ef (patch) | |
tree | b33c63888f81ff878c514c7c544e3afcf4cfbfd1 /main/app/sprinkles/extend-user/src/Database/Models/Member.php | |
parent | b66a61addb6c8e66cb26fcf74b532d68891267e4 (diff) |
Many fixes, began user feed generator
Diffstat (limited to 'main/app/sprinkles/extend-user/src/Database/Models/Member.php')
-rw-r--r-- | main/app/sprinkles/extend-user/src/Database/Models/Member.php | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/main/app/sprinkles/extend-user/src/Database/Models/Member.php b/main/app/sprinkles/extend-user/src/Database/Models/Member.php deleted file mode 100644 index 094d14c..0000000 --- a/main/app/sprinkles/extend-user/src/Database/Models/Member.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php - -namespace UserFrosting\Sprinkle\ExtendUser\Database\Models; - -use UserFrosting\Sprinkle\Account\Database\Models\User; -use UserFrosting\Sprinkle\ExtendUser\Database\Models\MemberAux; -use UserFrosting\Sprinkle\ExtendUser\Database\Scopes\MemberAuxScope; - -trait LinkMemberAux -{ - /** - * The "booting" method of the trait. - * - * @return void - */ - protected static function bootLinkMemberAux() { - /** - * Create a new MemberAux if necessary, and save the associated member data every time. - */ - static::saved(function ($member) { - $member->createAuxIfNotExists(); - - if ($member->auxType) { - // Set the aux PK, if it hasn't been set yet - if (!$member->aux->id) { - $member->aux->id = $member->id; - } - - $member->aux->save(); - } - }); - } -} - -class Member extends User -{ - use LinkMemberAux; - - protected $fillable = [ - 'user_name', - 'first_name', - 'last_name', - 'email', - 'locale', - 'theme', - 'group_id', - 'flag_verified', - 'flag_enabled', - 'last_activity_id', - 'password', - 'deleted_at', - 'city', - 'country' - ]; - - protected $auxType = 'UserFrosting\Sprinkle\ExtendUser\Database\Models\MemberAux'; - - /** - * Required to be able to access the `aux` relationship in Twig without needing to do eager loading. - * @see http://stackoverflow.com/questions/29514081/cannot-access-eloquent-attributes-on-twig/35908957#35908957 - */ - public function __isset($name) { - if (in_array($name, [ - 'aux' - ])) { - return TRUE; - } else { - return parent::__isset($name); - } - } - - /** - * Globally joins the `members` table to access additional properties. - */ - protected static function boot() { - parent::boot(); - - static::addGlobalScope(new MemberAuxScope); - } - - /** - * Custom mutator for Member property - */ - public function setCityAttribute($value) { - $this->createAuxIfNotExists(); - - $this->aux->city = $value; - } - - /** - * Custom mutator for Member property - */ - public function setCountryAttribute($value) { - $this->createAuxIfNotExists(); - - $this->aux->country = $value; - } - - /** - * Relationship for interacting with aux model (`members` table). - */ - public function aux() { - return $this->hasOne($this->auxType, 'id'); - } - - /** - * If this instance doesn't already have a related aux model (either in the db on in the current object), then create one - */ - protected function createAuxIfNotExists() { - if ($this->auxType && !count($this->aux)) { - // Create aux model and set primary key to be the same as the main user's - $aux = new $this->auxType; - - // Needed to immediately hydrate the relation. It will actually get saved in the bootLinkMemberAux method. - $this->setRelation('aux', $aux); - } - } -} |