Yii2 Eager按关系加载加入

时间:2015-12-28 22:26:14

标签: php yii2

我之前写过一个懒惰的查询,并按照这样的关系排序:

Item::find()
->orderBy([Token::tableName() . '.featured' => SORT_DESC;

我已经将查询更改为加载急切但我现在在尝试订购关系时遇到了一些麻烦。

Item::find()
->with('Token')
->orderBy(['token.featured' => SORT_DESC]);

我已经尝试过这种方式而且我打电话给Token::tableName() . featured。但我一直在不知名列。在Yii2中急切地为AR做这件事的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

在Yii2 with中,通过运行单独的查询来进行急切加载。要实际执行SQL连接,请使用joinWith

Item::find()
    ->joinWith('token')
    ->orderBy(['token.featured' => SORT_DESC]);

这应该有效,假设您的关系是在getToken()类的Item方法中定义的,其表格称为token