gpt4 book ai didi

php - 在 'country_id' 子句中获取列 'where' 是不明确的 - cakephp 1.3 中的搜索查询错误

转载 作者:可可西里 更新时间:2023-11-01 08:52:31 25 4
gpt4 key购买 nike

我正在使用 CakePHP 1.3 版本使用搜索插件来实现搜索功能。

我有三个模型:

  • 演示,
  • 国家
  • 国家

Demo 有两个外键,country_idstate_idState 具有外键 country_id

我正在做的是,我有一个搜索表单,其中包含国家和州下拉列表,从国家和州表中获取所有数据。当我从下拉列表中搜索任何国家并提交表格时,它会显示以下错误。如果我只使用状态下拉列表进行搜索,我会得到正确的结果。

当我执行搜索查询时,出现错误

'Column 'country_id' in where clause is ambiguous'

我的查询是:

SELECT `Demo`.`id`, `Demo`.`demo2`, `Demo`.`desc`, `Demo`.`subject`, `Demo`.`gender`, `Demo`.`country_id`, `Demo`.`state_id`, `Demo`.`image_url`, `Country`.`id`, `Country`.`name`, `State`.`id`, `State`.`country_id`, `State`.`description` FROM `demos` AS `Demo` LEFT JOIN `countries` AS `Country` ON (`Demo`.`country_id` = `Country`.`id`) LEFT JOIN `states` AS `State` ON (`Demo`.`state_id` = `State`.`id`) WHERE `country_id` = 2

Demo 表中的模型关系:

var $belongsTo = array(
'Country' => array(
'className' => 'Country',
'foreignKey' => 'country_id',
'conditions' => '',
'fields' => '',
'order' => ''
),

'State' => array(
'className' => 'State',
'foreignKey' => 'state_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
);

在下拉列表中获取所有国家/地区的 Controller 查询是:

$country=$this->Country->find('list'); //just display the list of country in dropdown

查询从除Country (country_id) 以外的所有字段中搜索数据,因为它不知道要查找的是哪个country_id表格 Demo 或表格 State。我需要演示表中的 country_id 才能获得正确的结果。

最佳答案

据我所知,您想通过演示查找特定的 country_id。那么你应该定义你正在使用哪个“country_id”,因为这些表中不止一个有这么一个专栏。

只需在条件数组中使用Democountry_id:

array('conditions' => array('Demo.country_id' => 2));

您应该会看到 Cake 生成的一些 SQL,如下所示:

SELECT `Demo`.`id`, `Demo`.`demo2`, `Demo`.`desc`, `Demo`.`subject`, `Demo`.`gender`, `Demo`.`country_id`, `Demo`.`state_id`, `Demo`.`image_url`, `Country`.`id`, `Country`.`name`, `State`.`id`, `State`.`country_id`, `State`.`description` FROM `demos` AS `Demo` LEFT JOIN `countries` AS `Country` ON (`Demo`.`country_id` = `Country`.`id`) LEFT JOIN `states` AS `State` ON (`Demo`.`state_id` = `State`.`id`) WHERE `Demo`.`country_id` = 2

关于php - 在 'country_id' 子句中获取列 'where' 是不明确的 - cakephp 1.3 中的搜索查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11050949/

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