CakePHP SQL 尝试使用 loadModel 时出错
CakePHP SQL Error when trying to use loadModel
我有两个控制器(Feeds 和 Items),在 Items 添加视图中,我希望来自 Feeds table 的一些信息对用户可见。
所以在 Items Controller 中我尝试访问 Feed 模型,我遇到的所有内容都建议使用 loadModel 但是当我尝试加载 Items 添加视图时,我收到以下错误:
错误:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行
附近使用的正确语法
SQL 查询:显示表来自
请注意这两个 table 之间没有关系设置。
饲料模型
App::uses('AppModel', 'Model');
class Feed extends AppModel {}
物品型号
App::uses('AppModel', 'Model');
class Item extends AppModel {}
物品控制器
App::uses('Feed','Model');
class ItemsController extends DirectResponseAppController {
function add() {
if ($this->request->is('post')) {
$this->Item->create();
if ($this->Item->save($this->request->data)) {
$this->Session->setFlash(__('Your item has been saved.'));
return $this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('Unable to add your item.'));
} else {
$this->loadModel('Feed');
$xxx = $this->Feed->find('all');
}
}
}
感谢任何帮助。
** 编辑 **
经过更多的挖掘,问题似乎出在这一行:
$xxx = $this->Feed->find('all');
我只是不知道为什么。
如果您的 Feed 在插件 (DirectResponse) 中,您必须像这样使用 loadModel:
$this->loadModel('DirectResponse.Feed');
我有两个控制器(Feeds 和 Items),在 Items 添加视图中,我希望来自 Feeds table 的一些信息对用户可见。
所以在 Items Controller 中我尝试访问 Feed 模型,我遇到的所有内容都建议使用 loadModel 但是当我尝试加载 Items 添加视图时,我收到以下错误:
错误:SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行
附近使用的正确语法SQL 查询:显示表来自
请注意这两个 table 之间没有关系设置。
饲料模型
App::uses('AppModel', 'Model');
class Feed extends AppModel {}
物品型号
App::uses('AppModel', 'Model');
class Item extends AppModel {}
物品控制器
App::uses('Feed','Model');
class ItemsController extends DirectResponseAppController {
function add() {
if ($this->request->is('post')) {
$this->Item->create();
if ($this->Item->save($this->request->data)) {
$this->Session->setFlash(__('Your item has been saved.'));
return $this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('Unable to add your item.'));
} else {
$this->loadModel('Feed');
$xxx = $this->Feed->find('all');
}
}
}
感谢任何帮助。
** 编辑 ** 经过更多的挖掘,问题似乎出在这一行:
$xxx = $this->Feed->find('all');
我只是不知道为什么。
如果您的 Feed 在插件 (DirectResponse) 中,您必须像这样使用 loadModel:
$this->loadModel('DirectResponse.Feed');