如何在Yii2中使用join和indexBy?

克洛伊

我有这个,但是它分别加载每一ebay行,生成数千个SQL语句:

$products = \app\models\Product::find()
    ->joinWith('ebay', false, 'inner join')
    ->indexBy(function($row){return $row->ebay->epid;})
    ->all();

我尝试了这个,但是它给出了一个错误: 'Getting unknown property: app\models\Product::ebay.epid'

$products = \app\models\Product::find()
    ->joinWith('ebay', false, 'inner join')
    ->indexBy('ebay.epid')
    ->all();

设置紧急加载=true也无济于事。它仍然单独加载每一行,然后在末尾再次加载它们。

如何有效地在Yii中联接表并通过联接表中的值建立索引?

硫磺化剂

您将无法使用indexBy但是,ArrayHelper::index可以在相关模型字段上索引数组。所以这是可以做到的:

$products = \app\models\Product::find()
    ->with('ebay')
    ->all();

ArrayHelper::index($products, 'ebay.epid');

该代码将运行两个查询,一个查询获取所有产品,一个查询获取所有相关的ebay产品。然后,将在没有数据库查询的情况下对数组建立索引。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Yii2 中使用 DbQueryDependency 和 mongodb

来自分类Dev

如何在Yii2中使用swiftMailer

来自分类Dev

如何在yii2中使用Flash消息?

来自分类Dev

如何在yii2中使用Create Command?

来自分类Dev

如何在yii2中使用DbMessageSource

来自分类Dev

如何在yii2中使用Create Command?

来自分类Dev

如何在yii2中使用findAll()?

来自分类Dev

如何在yii2中使用mPDF?

来自分类Dev

如何在Yii2中使用ArrayHelper :: multisort()

来自分类Dev

如何在yii2中使用复杂的SQL

来自分类Dev

如何在Gridview中使用相关表:Yii2

来自分类Dev

如何在yii2 ActiveRecord中使用查询缓存

来自分类Dev

如何在yii2的AndWhere中使用嵌套条件

来自分类Dev

yii2如何在pjax中使用response sendFile()

来自分类Dev

如何在yii2 ActiveRecord中使用查询缓存

来自分类Dev

Yii2:如何在 GridView Widget 中使用条件

来自分类Dev

Yii2:如何在布局中使用模型数据

来自分类Dev

如何在Yii2中使用ActiveQuery进行子查询

来自分类Dev

如何在YII2中使用非空条件

来自分类Dev

如何在Yii2中使用自定义的CSS文件进行模块布局

来自分类Dev

如何在yii2中使用来自两个表的显示数据

来自分类Dev

如何在Yii2中使用参数调用存储过程

来自分类Dev

如何在Yii2中使用Codeception运行单元测试?

来自分类Dev

如何在YII2中使用PJAX处理来自控制器的错误?

来自分类Dev

如何在Yii2中使用ActiveQuery进行子查询

来自分类Dev

如何在yii2中使用Swift_Plugins_AntiFloodPlugin

来自分类Dev

如何在yii2中使用start_time和end_time获取MySql中已经存在的记录?

来自分类Dev

如何在Yii2中使用Yii :: $ app-> security-> encryptByKey()保存加密的数据

来自分类Dev

在Yii2中使用Googlemap?

Related 相关文章

热门标签

归档