/**
  * Save entity to database.
  * Generate token before saving.
  *
  * @return int|false
  */
 public function save()
 {
     // Generate new token if it is not set.
     if ($this->get('token') == '') {
         $test = new self();
         do {
             $token = md5(uniqid(time(), true));
         } while ($test->loadBy(array('token' => $token)) === true);
         $this->set('token', $token);
     }
     return parent::save();
 }
 public static function withID($id)
 {
     $instance = new self();
     $instance->loadBy('id', $id);
     return $instance;
 }