Reference of alias in a query created with Query Builder

I want to use a query builder for this complex generic query.

(new Query)->select([
	"aliasRefId" => "posts.id"
        "itemA"      => (new Query)->select(["itA"])
			           ->from(["table_name"])
			           ->where(["table_name.itemId" => "aliasRefId"])
	])->from(["posts]);

The generated query should be:

SELECT 
	posts.id as aliasRefId,

	( SELECT itA
	  FROM 	table_name
	  WHERE  table_name.itemId = aliasRefId ) as itemA
	FROM posts

The problem is that I can’t use aliasRefId in that inner select.

Try \yii\db\Expression (or even better: rely on active record and the great query engine)

(new Query)
    ->select([
        'aliasRefId' => 'posts.id',
        'itemA' => (new Query)
            ->select('itA')
            ->from('table_name')
            ->where(['table_name.itemId' => new \yii\db\Expression('[[aliasRefId]]')])
    ])
    ->from("{{%posts}}");