【发布时间】:2011-08-05 02:04:51
【问题描述】:
表格
restaurants
cuisines
cuisines_restaurants
餐厅和美食模型相互设置为HABTM。
我正在尝试获取 Cuisine.name = 'italian'(示例)的餐厅的分页列表,但不断收到此错误:
1054: Unknown column 'Cuisine.name' in 'where clause'
它正在构建的实际查询:
SELECT `Restaurant`.`id`, `Restaurant`.`type` .....
`Restaurant`.`modified`, `Restaurant`.`user_id`, `User`.`display_name`,
`User`.`username`, `User`.`id`, `City`.`id`,`City`.`lat` .....
FROM `restaurants` AS `Restaurant` LEFT JOIN `users` AS `User` ON
(`Restaurant`.`user_id` = `User`.`id`) LEFT JOIN `cities` AS `City` ON
(`Restaurant`.`city_id` = `City`.`id`) WHERE `Cuisine`.`name` = 'italian'
LIMIT 10
“.....”部分只是我删除的附加字段,以缩短向您展示的查询。
我不是 CakePHP 专业人士,所以希望有一些明显的错误。我这样称呼分页:
$this->paginate = array(
'conditions' => $opts,
'limit' => 10,
);
$data = $this->paginate('Restaurant');
$this->set('data', $data);
$opts 是一个选项数组,其中一个是 'Cuisine.name' => 'italian'
我也尝试设置 $this->Restaurant->recursive = 2;但这似乎没有任何作用(我认为我不应该这样做?)
非常感谢任何帮助或指导。
编辑
models/cuisine.php
var $hasAndBelongsToMany = array('Restaurant');
models/restaurant.php
var $hasAndBelongsToMany = array(
'Cuisine' => array(
'order' => 'Cuisine.name ASC'
),
'Feature' => array(
'order' => 'Feature.name ASC'
),
'Event' => array(
'order' => 'Event.start_date ASC'
)
);
【问题讨论】:
标签: php cakephp cakephp-1.3 has-and-belongs-to-many