octobercms - 使列表可搜索以获得更深层次的关系
问题描述
十月CMS:V 2.1.17
我在 OctoberCMS v2 上为我的插件建立一个后端列表。我的列表控制器显示了一个列表,其中包含与此模型的许多关系相关的许多列。其中一列显示来自 2 更深关系的值。
在谷歌上进行一些搜索后,我找到了我尝试过的解决方案: 在 OctoberCMS 中搜索深度相关字段
这是我listExtendQuery
在控制器中的功能:
public function listExtendQuery($query, $definition)
{
if($definition == "suivis"){
$dossierProductsTableName = (new DossierProducts)->getTable();
$dossierTableName = (new Dossier)->getTable();
$etablissementTableName = (new Etablissement)->getTable();
$query->addSelect($etablissementTableName . '.name as etablissement_name');
$query->leftJoin($dossierTableName, $dossierTableName . '.id', '=', $dossierProductsTableName . '.dossier_id');
$query->leftJoin($etablissementTableName, $etablissementTableName . '.id', '=', $dossierTableName . '.etablissement_id');
}
}
这是我在搜索输入中输入文本时总是收到的错误消息:
"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'lucaspalomba_packsinterieurs_dossiers_products.etablissement_name' in 'where clause' (SQL: select `lucaspalomba_packsinterieurs_dossiers_products`.*, (select concat(id, " - ", name) from `lucaspalomba_packsinterieurs_pieces` where `lucaspalomba_packsinterieurs_dossiers_products`.`piece_id` = `lucaspalomba_packsinterieurs_pieces`.`id`) as `piece_id`, (select concat(id, " - ", name) from `lucaspalomba_packsinterieurs_categories` where `lucaspalomba_packsinterieurs_dossiers_products`.`categorie_id` = `lucaspalomba_packsinterieurs_categories`.`id`) as `category_id`, `lucaspalomba_packsinterieurs_etablissements`.`name` as `etablissement_name` from `lucaspalomba_packsinterieurs_dossiers_products` left join `lucaspalomba_packsinterieurs_dossiers` on `lucaspalomba_packsinterieurs_dossiers`.`id` = `lucaspalomba_packsinterieurs_dossiers_products`.`dossier_id` left join `lucaspalomba_packsinterieurs_etablissements` on `lucaspalomba_packsinterieurs_etablissements`.`id` = `lucaspalomba_packsinterieurs_dossiers`.`etablissement_id` where (((lower(lucaspalomba_packsinterieurs_dossiers_products.etablissement_name) LIKE %sil%)) or exists (select * from `lucaspalomba_packsinterieurs_pieces` where `lucaspalomba_packsinterieurs_dossiers_products`.`piece_id` = `lucaspalomba_packsinterieurs_pieces`.`id` and ((lower(concat(id, " - ", name)) LIKE %sil%))) or exists (select * from `lucaspalomba_packsinterieurs_categories` where `lucaspalomba_packsinterieurs_dossiers_products`.`categorie_id` = `lucaspalomba_packsinterieurs_categories`.`id` and ((lower(concat(id, " - ", name)) LIKE %sil%)))) order by `id` asc)" on line 669 of /home/siqzrpd/interiors/vendor/laravel/framework/src/Illuminate/Database/Connection.php
我没有找到任何解决方案。这就是为什么我问你是否有人知道为什么会显示这个错误?
非常感谢,最好的。
卢卡斯
解决方案
推荐阅读
- swift - 通过 restoreIdentifier / 没有 indexpath [swift] 获取单元格 UITableView
- sails.js - 如何将sailsjs与vuetify集成?
- c++ - “错误:没有匹配的函数调用”构造函数错误
- python - Django Rest Framework - TaggableManager 字段的反序列化
- debugging - 有什么方法可以让 Mozilla 显示 SVG 源代码?
- java - 如何在 Gradle 生成的 jar 中生成 INDEX.LIST 文件?
- ios - 将嵌套的 NSDictionary 解析为 JSON,并 POST 到服务器
- java - 如果端点存在,我可以用 mockmvc 检查吗?
- dynamics-crm - 插件和沙盒 - 在解决方案中添加对另一个项目的引用
- c++ - C++ 概念的通配符表示“接受此模板参数的任何内容”