Yii2-具有ActiveRecord的表别名

标签 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]);

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

最佳答案

您可以使用 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]);

关于Yii2-具有ActiveRecord的表别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474661/

相关文章:

php - 使用 phar 打包并部署 Yii2 Advance 应用程序

php - Yii2 中的滚动寻呼机扩展

php - yii2 hasOne 关系工作错误

javascript - CKEditor 文件上传在 Yii2 中不起作用

php - 保护 php api 以在 android 应用程序中使用

php - Yii CArrayDataProvider 对所有列进行排序

gridview - 如何在 Yii CGridView 中处理选定的行?

php - 如何使用适用于 Yii2 的 AWS SDK 将图像上传到数字 Ocean Spaces?

php - 如何禁用updated_at的时间戳值?

php - mysql 中的条件分组