public function getFriendsList(){
return $this->hasMany(UserRelation::className(),['user_id'=>'id'])->where(['or', ['user_id' => $this->id],['invite_id'=>$this->id]);
}public function getFriendsList(){
return UserRelation::find()->where(['or', ['user_id' => $this->id],['invite_id'=>$this->id]);
} $query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')"; вы должны быть уверены, что первые три поля таблицы $usertable должны быть name, email и preference, остальные должны иметь значения по умолчанию. Это во-первых. Во-вторых - плохая практика писать запросы со вставкой переменных прямо в строку запроса (почитайте про SQL-инъекции). В третьих, по всей видимости - вместо $email = md5($params['password']) ожидается $password = md5($params['password']). В четвертых - как пароль может сохранится, если вы его не вставляете в базу вообще? WHERE x IN(.....) жесть.$values = [1, 2, 3];
$in_query = implode(',', array_fill(0, count($values), '?'));
$query = $DB->prepare(sprintf("UPDATE `Ttopic` SET `main`= ?, `main_id`= ?, `type`='".$f['type']."' WHERE `id` IN (%s) LIMIT 10", $in_query));
if($query->execute(array_merge([$main, $theme], $values)) echo 'ok';