我使用CakePHP 2.2.2我有3张桌子:餐馆,厨房和厨房餐厅 - HABTM的连接桌.
在餐厅模型我有:
public $hasAndBelongsToMany = array(
'Kitchen' =>
array(
'className' => 'Kitchen',
'joinTable' => 'kitchens_restaurants',
'foreignKey' => 'restaurant_id',
'associationForeignKey' => 'kitchen_id',
'unique' => true,
'conditions' => '',
'fields' => 'kitchen',
'order' => '',
'limit' => '',
'offset' => '',
),
Run Code Online (Sandbox Code Playgroud)
问题是我的主页面有单独的控制器,我需要从复杂条件的模型中检索数据.
我补充道
public $uses = array('Restaurant');
Run Code Online (Sandbox Code Playgroud)
到我的主页控制器,这里是我需要你的建议的部分.
我只需要选择那些厨房= $ id的餐馆.我试过补充一下
public function index() {
$this->set('rests', $this->Restaurant->find('all', array(
'conditions' => array('Restaurant.active' => "1", 'Kitchen.id' => "1")
)));
}
Run Code Online (Sandbox Code Playgroud)
我得到了SQLSTATE [42S22]:未找到列:1054'where子句'错误中的未知列.显然我需要从"HABTM连接表"中获取数据,但我不知道如何.
我偶然发现了一个非常奇怪的问题,我正在构建一个HTML模型,它在localhost的所有主流浏览器中运行良好,但是当我将它上传到服务器时,事情变得很奇怪.
当我从Chrome或Safari中的服务器加载我的网站时,标题(看起来我需要它来自localhost)会显示失真.但是当我重新加载页面时,它有可能正常显示.
两个位置的代码完全相同.服务器正在运行apache 2.2.16
我将CacheHelper添加到了我的应用程序中.在我的APP/Config/core.php中我有
Configure::write('Cache.check', true);
Run Code Online (Sandbox Code Playgroud)
在APP/Config/bootstrap.php中我有
Configure::write('Dispatcher.filters', array(
'AssetDispatcher',
'CacheDispatcher'
));
Run Code Online (Sandbox Code Playgroud)
在我的控制器中我有:
public $helpers = array('Text', 'Cache');
public $cacheAction = "1 hour";
Run Code Online (Sandbox Code Playgroud)
我没有直接在这个控制器或AppController中回调.问题是每个页面只加载一次(例如 - 清除缓存后).在第二次请求我回来了
Fatal Error
Error: Class 'AppController' not found
Run Code Online (Sandbox Code Playgroud)
如果关闭缓存一切正常.
CakePHP版本是2.2.3
调试日志:
2012-12-24 12:21:00 Error: Fatal Error (1): Class 'AppController' not found in [/Volumes/../app/Controller/NewsController.php, line 2]
2012-12-24 12:21:00 Error: [FatalErrorException] Class 'AppController' not found
#0 /Volumes/../lib/Cake/Error/ErrorHandler.php(161): ErrorHandler::handleFatalError(1, 'Class 'AppContr...', '/Volumes/Data/D...', 2)
#1 [internal function]: ErrorHandler::handleError(1, 'Class 'AppContr...', '/Volumes/../D...', 2, Array)
#2 /Volumes/../lib/Cake/Core/App.php(926): call_user_func('ErrorHandler::h...', 1, 'Class 'AppContr...', '/Volumes/../D...', 2, Array) …Run Code Online (Sandbox Code Playgroud)