code: public function with($with)
      {
          $with = is_string($with) ? func_get_args() : $with;
  
          if (empty($this->with)) {
              $this->with = $with;
          } elseif (!empty($with)) {
              foreach ($with as $name => $value) {
                  if (is_int($name)) {
                      // дубликаты связей будут устранены в normalizeRelations()
                      $this->with[] = $value;
                  } else {
                      $this->with[$name] = $value;
                  }
              }
          }
  
          return $this;
      }
docs: Определяет связи, которые должны быть загружены при выполнении запроса
  
  Передавая массив можно указать ключем - название релейшена, а значением - коллбек для кастомизации запроса
  
  @param array|string $with - связи, которые необходимо жадно подгрузить
  // Загрузить Customer и сразу для каждой модели подгрузить orders и country
  Customer::query()->with(['orders', 'country'])->getList();
  
  // Загрузить Customer и сразу для каждой модели подгрузить orders, а также для orders загрузить address
  Customer::find()->with('orders.address')->getList();
  
  // Загрузить Customer и сразу для каждой модели подгрузить country и orders (только активные)
  Customer::find()->with([
  'orders' => function (BaseQuery $query) {
  $query->filter(['ACTIVE' => 'Y']);
  },
  'country',
  ])->all();
  
  @return $this