gpt4 book ai didi

mysql - 使用 CakeDC 搜索插件链接两个模型

转载 作者:行者123 更新时间:2023-11-30 22:40:32 25 4
gpt4 key购买 nike

我有一个小问题让我耗费了好几天的时间。我需要在 CakePHP 中搜索两个不同的模型,我正在使用 CakeDC 搜索插件。模型是“Desordens”和“Sinonimos”,关联是 hasMany。一个“Desorden”有许多“同义词”:

public $hasMany = array(
'Sinonimo' => array(
'className' => 'Sinonimo',
'foreignKey' => 'desorden_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),

所以,我按照 CakeDC Docs 中的示例做了这个:

public $filterArgs = array(
'busca' => array(
'type' => 'like',
'encode' => true,
'before' => false,
'after' => false,
'field' => array(
'Desorden.name',
'Desorden.orphanumber',
'Sinonimo.sinonimo')
)
);

我想做的是搜索,用户可以在其中插入名称、孤数或同义词。在 SQL 中将是:

SELECT `Desorden`.`id`, `Desorden`.`name`, `Desorden`.`orphanumber`, `Desorden`.`expertlink`, `Desorden`.`tipodesordem`, `Desorden`.`descricao`, `Sinonimo`.`id`, `Sinonimo`.`sinonimo`, `Sinonimo`.`desorden_id` FROM `rederaras`.`desordens` AS `Desorden` LEFT JOIN `rederaras`.`sinonimos` AS `Sinonimo` ON (`Sinonimo`.`desorden_id` = `Desorden`.`id`) WHERE ((`Desorden`.`name` LIKE 'mult') OR (`Desorden`.`orphanumber` LIKE 'mult') OR (`Sinonimo`.`sinonimo` LIKE 'mult'))

但是表 'Sinonimo' 没有被加入,我有 1054 错误:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Sinonimo.sinonimo' in 'where clause'

我不知道我错过了什么,我配置的 Controller 是这样的:

$this->Prg->commonProcess();
$this->Desorden->recursive = 0;
$this->Paginator->settings['conditions'] = $this->Desorden->parseCriteria($this->Prg->parsedParams());
$this->set('desordens', $this->Paginator->paginate());

我认为它在模型或 cakedc filterArg 配置中没有问题,因为查询是以正确的方式构造的。我尝试使用 bindModel 在表 'Desordens' 和 'Sinonimos' 之间进行连接,但没有成功。 ..

$this->Desorden->bindModel(array(
'hasMany' => array(
'Sinonimo' => array(
'foreignKey' => false,
'conditions' => array('Desorden.id = Sinonimo.desorden_id')
)
)
), false);

任何人都可以帮助我完成这个加入吗?

谢谢

最佳答案

我在两个模型中使用 $belongsTo 解决了这个问题。当我设置 $belongsTo 时,CakeDC 在表之间创建一个连接。我不知道这是否是最佳解决方案,但对我有用。如果这对某人有帮助。

关于mysql - 使用 CakeDC 搜索插件链接两个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230225/

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