'phone = :phone:', 'bind' => ['phone' => $phone], ]); } /** * @param string $email * @return AccountModel|Model|bool */ public function findByEmail($email) { return AccountModel::findFirst([ 'conditions' => 'email = :email:', 'bind' => ['email' => $email], ]); } /** * @param string $provider * @param string $openId * @return AccountModel|Model|bool */ public function findByOpenId($provider, $openId) { $bind = AccountBindModel::findFirst([ 'conditions' => 'provider = ?1 AND open_id = ?2', 'bind' => [1 => $provider, 2 => $openId], ]); if (!$bind) return false; return AccountModel::findFirst($bind->user_id); } /** * @param array $ids * @param array|string $columns * @return ResultsetInterface|Resultset|AccountModel[] */ public function findByIds($ids, $columns = '*') { return AccountModel::query() ->columns($columns) ->inWhere('id', $ids) ->execute(); } }