首页 > 解决方案 > 使列表可搜索以获得更深层次的关系

问题描述

十月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

我没有找到任何解决方案。这就是为什么我问你是否有人知道为什么会显示这个错误?

非常感谢,最好的。

卢卡斯

标签: octobercmsoctobercms-backend

解决方案


推荐阅读