/** * * @param QueryInterface $query * @param string $relationName * @param string $relationTableName defaults to null (use when you create alias) * @param string $relationTableAlias defaults to null (use when you create alias) */ public function joinWithRelation(&$query, $relationName, $relationTableName = null, $relationTableAlias = null) { if (empty($relationTableAlias)) { $query->joinWith([$relationName]); } else { $query->joinWith([$relationName => function ($query) use($relationTableAlias, $relationTableName) { $query->from([$relationTableAlias => $relationTableName]); }]); } }