/**
  * Populates the object with data
  *
  * Passing in an associative array of data will populate this object without
  * hitting the database.
  *
  * Passing in a scalar will load the data from the database.
  * This will load all fields in the table as properties of this class.
  * You may want to replace this with, or add your own extra, custom loading
  *
  * @param int|string|array $id (ID, email, username)
  */
 public function __construct($id = null)
 {
     if ($id) {
         if (is_array($id)) {
             $this->data = $id;
         } else {
             if (ActiveRecord::isId($id)) {
                 $sql = 'select * from people where id=?';
             } elseif (false !== strpos($id, '@')) {
                 $sql = 'select * from people where email=?';
             } else {
                 $sql = 'select * from people where username=?';
             }
             $rows = parent::doQuery($sql, [$id]);
             if (count($rows)) {
                 $this->data = $rows[0];
             } else {
                 throw new \Exception('people/unknownPerson');
             }
         }
     } else {
         // This is where the code goes to generate a new, empty instance.
         // Set any default values for properties that need it here
         $this->setAuthenticationMethod('local');
     }
 }
 /**
  * Populates the object with data
  *
  * Passing in an associative array of data will populate this object without
  * hitting the database.
  *
  * Passing in a scalar will load the data from the database.
  * This will load all fields in the table as properties of this class.
  * You may want to replace this with, or add your own extra, custom loading
  *
  * @param int|string|array $id (ID, email, username)
  */
 public function __construct($id = null)
 {
     if ($id) {
         if (is_array($id)) {
             $this->data = $id;
         } else {
             $sql = ActiveRecord::isId($id) ? 'select * from maps where id=?' : 'select * from maps where alias=?';
             $result = parent::doQuery($sql, [$id]);
             if (count($result)) {
                 $this->data = $result[0];
             } else {
                 throw new \Exception('maps/unknown');
             }
         }
     } else {
         // This is where the code goes to generate a new, empty instance.
         // Set any default values for properties that need it here
     }
 }