accounts/api/traits/AccountFinder.php

28 lines
531 B
PHP
Raw Normal View History

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