-1

我想知道在哪里写选择查询是用 cake php 写的我只在控制器中看到以下代码

function getpages($position = 'top') {
        return $this->Page->find('all', array('conditions' => 'Page.'.$position.'_show > 0', 'order' => 'Page.'.$position.'_order ASC'));
}

及其给出以下错误

警告 (512) SQL 错误:1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法'FROM AS `Page` WHERE `Page`.`top_show` > 0 ORDER BY `Page`.`top_order` ASC'

$this->set('categories', $this->Category->find('all', array('conditions' => array('Category.parent_id' => $category['Category']['id']), 'order' => array('Category.name' => 'asc'))));

给出以下错误

SQL 错误:1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '' 附近使用的正确语法

请告诉我如何解决它

4

2 回答 2

0

首先这是你的正确格式

  $this->set('categories', $this->Category->find('all', array('conditions' => array('Category.parent_id' => $category['Category']['id']), 
'order' => 'Category.name ASC'))));

第二个在类别模型类中添加这两个

var $useTable = 'Categories'; // Actual table name
var $alias = 'Category';

这是我的理解。

于 2013-06-03T13:57:18.160 回答
0

这是编写查询的正确方法:

$this->set('categories', $this->Category->find('all', array('conditions' => array('Category.parent_id' => $category['Category']['id']), 
'order' => 'Category.name ASC'))));
于 2013-06-03T12:41:30.823 回答