【问题标题】:cakePHP search functioncakePHP 搜索功能
【发布时间】:2012-01-19 23:56:50
【问题描述】:

在搜索功能中我有这段代码

foreach($words as $word) {

            $search = '%'.$word.'%';

            $query['conditions'][]['or'] = array(
                'ProductComponent.codice LIKE' => $search,
                'ProductComponent.nome'.__('_it', true).' LIKE' => $search,
                'ComponentType.nome'.__('_it', true).' LIKE' => $search,
                'Material.nome'.__('_it', true).' LIKE' => $search,
                'Finish.nome'.__('_it', true).' LIKE' => $search,
                'ClientCode.client_component_code LIKE' => $search,
            );
        }

当我执行查询时出现此错误

警告 (512):SQL 错误:1054:未知列 'where 子句'中的'ClientCode.client_component_code' [CORE/cake/libs/model/datasources/dbo_source.php,第 684 行]

这是桌子

CREATE TABLE IF NOT EXISTS `client_codes` (
`id` int(10) NOT NULL auto_increment,
`user_id` int(10) NOT NULL,
`product_component_id` int(10) NOT NULL,
`client_component_code` varchar(255) NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=225 ;

这是 ClientCode 模型

<?php
class ClientCode extends AppModel {
var $name = 'ClientCode';
var $belongsTo = array('ProductComponent', 'User');
}
?>

这些是ProductComponent模型的关系

<?php
class ProductComponent extends AppModel {
var $name = 'ProductComponent';
var $belongsTo = array('ComponentType', 'Material', 'Finish','Line');
var $hasMany = array(
    'Part', 
    'RelatedComponent',
    'LineRelatedComponent' => array(
        'className'  => 'RelatedComponent',
        'conditions' => array('NOT' => array('LineRelatedComponent.line_id' => NULL)),
    ),
    'GenericRelatedComponent' => array(
        'className'  => 'RelatedComponent',
        'conditions' => array('GenericRelatedComponent.line_id' => NULL),
    ),
    'CustomPriceList',
    'PriceList',
    'ClientCode'
);
var $hasAndBelongsToMany = array('Upload');

我不明白为什么...请帮忙。谢谢!

【问题讨论】:

  • 您的数据库中有ClientCode.client_component_code 列吗?
  • 只有最后一个条件不行,其他条件都很好
  • 是的,Marek 我的数据库中有该列
  • 然后清除 /app/tmp(和所有子文件夹)中的缓存并重试,否则,这是您的模型定义/实现的问题
  • 发布模型类和数据库表创建 SQL 序列,并将其附加到您的问题,通过它下面的链接 edit

标签: cakephp cakephp-1.3


【解决方案1】:

您使用的是可包含的吗?听起来您正在尝试对未连接的表执行条件。

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    相关资源
    最近更新 更多