【发布时间】:2018-09-12 10:12:50
【问题描述】:
如何从控制器调用模型中已创建的自定义操作
在 cakephp1.x 版本中似乎运行良好。但是当我尝试将其升级到 cakphp2.10 时,方法不起作用,显示以下错误
数据库错误错误:SQLSTATE[42000]:语法错误或访问 违规:1064 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在第 1 行的“getChildCategory”附近使用
我的代码是
控制器调用
$this->loadModel('Category');
$childCategories = $this->Category->getChildCategory();
模型功能
App::uses('AppModel', 'Model');
class Category extends AppModel {
var $name = 'Category';
var $displayField = 'Category_cname';
public function getChildCategory()
{
$Db = ConnectionManager::getDataSource($this->useDbConfig);
$cattbl = $Db->fullTableName('categories');
$dat = $this->query("select yt.cname,yt.id
from $cattbl yt
where not exists (select null from $cattbl where parent_id = yt.id) LIMIT 0,10");
return $dat;
}
}
非常感谢任何帮助!
【问题讨论】:
-
你的 SQL 语法有错误;
-
表示你的查询有语法错误。请检查一下。
-
我注释了方法内的所有代码并再次尝试但显示相同的错误。我的方法声明中有语法问题吗???
-
$this->Category不是您定义该方法的类的实例。 stackoverflow.com/a/27176539/1392379 -
不,我在“类别”模型中创建了该方法。请检查更新的型号代码。
标签: php cakephp cakephp-2.0