accounts/api/traits/AccountFinder.php
2018-04-17 23:47:25 +03:00

25 lines
513 B
PHP

<?php
namespace api\traits;
use common\models\Account;
trait AccountFinder {
private $account;
abstract public function getLogin(): string;
public function getAccount(): ?Account {
if ($this->account === null) {
$this->account = Account::findOne([$this->getLoginAttribute() => $this->getLogin()]);
}
return $this->account;
}
public function getLoginAttribute(): string {
return strpos($this->getLogin(), '@') ? 'email' : 'username';
}
}