Rob*_*ini 3 postgresql yii2 yii2-advanced-app
我正在学习如何使用 Yii2 框架进行简单的查询。我使用 PostgreSQL。
我正在尝试连接两个表并使用where条件从两个表中获取数据。
这些表称为Admins和Persons。连接使用字段称为idadm。
条件是idadm = 33。这很好用,但结果仅包含来自 Admins 表的数据,而我需要来自其他表的数据。
这是我的例子:
$query = \app\models\Admins::find()
->select('*')
->leftJoin('persons', 'persons.idadm = admins.idadm')
->where(['admins.idadm' => 33])
->with('persons')
->all();
Run Code Online (Sandbox Code Playgroud)
我正在遵循 Yii2 官方指南:http://www.yiiframework.com/doc-2.0/guide-db-active-record.html
您需要在 select() 中写入所有列名称。
$query = \app\models\Admins::find()
->select('admin.*,persons.*') // make sure same column name not there in both table
->leftJoin('persons', 'persons.idadm = admins.idadm')
->where(['admins.idadm' => 33])
->with('persons')
->all();
Run Code Online (Sandbox Code Playgroud)
您还需要在管理模型中定义人员表属性。
第二种方法是将记录作为数组获取,因此您不需要在管理模型中定义属性。
$query = \app\models\Admins::find()
->select('admin.*,persons.*') // make sure same column name not there in both table
->leftJoin('persons', 'persons.idadm = admins.idadm')
->where(['admins.idadm' => 33])
->with('persons')
->asArray()
->all();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15653 次 |
| 最近记录: |