code: private function setRelationDependencies($name, $relation, $viaRelationName = null)
      {
          if (empty($relation->via) && $relation->link) {
              foreach ($relation->link as $attribute) {
                  $this->_relationsDependencies[$attribute][$name] = $name;
                  if ($viaRelationName !== null) {
                      $this->_relationsDependencies[$attribute][] = $viaRelationName;
                  }
              }
          } elseif ($relation->via instanceof ActiveQueryInterface) {
              $this->setRelationDependencies($name, $relation->via);
          } elseif (is_array($relation->via)) {
              list($viaRelationName, $viaQuery) = $relation->via;
              $this->setRelationDependencies($name, $viaQuery, $viaRelationName);
          }
      }
docs: Sets relation dependencies for a property
  @param string $name property name
  @param ActiveQueryInterface $relation relation instance
  @param string|null $viaRelationName intermediate relation