gpt4 book ai didi

php - 优化 Laravel Backpack n-n 关系中的查询

转载 作者:行者123 更新时间:2023-11-29 10:41:18 25 4
gpt4 key购买 nike

我正在使用 Laravel Backpack 为网站构建后端面板。这真的很好,但我注意到关系查询非常昂贵。

我有两个模型:产品中心,它们之间存在多对多关系。在我的 CenterCrudController 中,我这样定义了一个字段:

$this->crud->addColumns([
// More fields...
[
'label' => 'Products',
'type' => 'select2_multiple',
'name' => 'products', // the method that defines the relationship in your Model
'entity' => 'products', // the method that defines the relationship in your Model
'attribute' => 'name', // foreign key attribute that is shown to user
'model' => 'App\Models\Product', // foreign key model
'pivot' => true, // on create&update, do you need to add/delete pivot table entries?
],
// More fields...
]);

它工作正常,显示具有相关模型的选择多个字段。但使用的查询是 SELECT * FROM products ,这是非常昂贵的(表产品有数千条记录,大约 25 列)。

在此示例中,我只需要 idname 字段。我正在寻找类似查询生成器 select() 的东西方法。

有没有办法优化这种类型的查询?

提前致谢!

最佳答案

不确定这是否真的是一个答案,但无论如何我都会发布它。

最好的解决方案(如@tabacitu指出的)是使用select2_from_ajax字段。它不会减慢页面加载速度,并且仅当用户单击选择字段时才发出 ajax 请求来检索数据。

关于php - 优化 Laravel Backpack n-n 关系中的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45434652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com