Yii2 - 使用ActiveRecord的表别名

mra*_*teb 6 yii yii2

我有一个长名称的表,例如products_with_a_long_name.型号名称是ProductsWithALongName.现在,我有一个查询,我需要在与另一个表连接时从该表中选择许多列.例:

ProductsWithALongName::find()
    ->select(['products_with_a_long_name.id', 'products_with_a_long_name.selling_price','client.name'])
    ->leftjoin('all_the_clients as client','products_with_a_long_name.clientId = client.id')
    ->where(['products_with_a_long_name.id' => $var]);
Run Code Online (Sandbox Code Playgroud)

现在我如何为第一个表使用别名,products_with_a_long_name因为我正在为第二个表使用别名.我知道我可以使用Query但在这种情况下我需要结果,ActiveRecord所以在这种情况下这不是一个选项.

sca*_*dge 17

你可以使用alias():

ProductsWithALongName::find()
    ->alias('p')
    ->select(['p.id', 'p.selling_price','client.name'])
    ->leftjoin('all_the_clients as client', 'p.clientId = client.id')
    ->where(['p.id' => $var]);
Run Code Online (Sandbox Code Playgroud)