code: public static function findByAttribute($attribute, $searchValue) {
          if(static::getExtensionOptions('ENABLE_YII2_PROFILING') == true) {
              Yii::beginProfile('Attribute: ' . $attribute . '; Value: ' . $searchValue, static::YII2_PROFILE_NAME . 'findByAttribute');
          }
          
          $userObjectsFound = static::getAdldapProvider()->search()->select('samaccountname')->where($attribute, '=', $searchValue)->get();
          
          $userObjectReturn = null;
          if(count($userObjectsFound) == 1) {
              $userObjectReturn = static::findByUsername($userObjectsFound[0]['samaccountname'][0]);
          }
  
          if(static::getExtensionOptions('ENABLE_YII2_PROFILING') == true) {
              Yii::endProfile('Attribute: ' . $attribute . '; Value: ' . $searchValue, static::YII2_PROFILE_NAME . 'findByAttribute');
          }        
          return $userObjectReturn;
      }
docs: Find a user with a LDAP-attribute and a value.
  
  If you don't want to use the unsername (samaccountname) for login and
  for example want to use LDAP-attribute userPrincipalName for the login, call this function with
  \Edvlerblog\Adldap2\model\UserDbLdap::findByAttribute('userPrincipalName',$this->username);
  You can use any LDAP-Attribute availiable.
  
  This function does a LDAP-Query to the Active Directory to retrive the
  samaccountname. If exactly one result is returned, the function
  static::findByUsername(QUERIED_SAM_ACCOUNT_NAME); is called.
  
  @param string $attribute Attribut for
  @param string $searchValue The value, the attribute
  @return Edvlerblog\Adldap2\model\UserDbLdap A User instance, if user is valid. Otherwise NULL.