Php 当您';我们在一个控制器里
我在向模型调用函数时遇到此错误Php 当您';我们在一个控制器里,php,cakephp,Php,Cakephp,我在向模型调用函数时遇到此错误 Database Error Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'singleBlockWeekly' a
Database Error
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'singleBlockWeekly' at line 1
SQL Query: singleBlockWeekly
这是我的控制器
class BlackoutController extends CalendarAppController
{
var $uses = array('Studio','Blackout','BlackoutRepeatTypeDetails','Calendar.Event');
var $components = array('Accesscontrol','RequestHandler');
function event_checker()
{
$start_date = $this->request->data['start_date'];
$end_date = $this->request->data['end_date'];
$endsOn = $this->request->data['endsOn'];
$repeatType = $this->request->data['repeatType'];
$blockType = $this->request->data['blockType'];
$frequency = $this->request->data['freq'];
$repeatDays = $this->request->data['repeatDays'];
#single type
if($blockType == "single"){
if($repeatType == "weekly"){
$dates = $this->Blackout->singleBlockWeekly($start_date,$endsOn,$repeatDays,$frequency);
debug($dates);
die;
}
}
}
}
这是我的型号
class Blackout extends CalendarAppModel
{
var $name = 'Blackout';
var $useTable = false;
function singleBlockWeekly($startDate,$endDate,$repeatEvery = array(),$freq)
{
/*my code here...brevity...*/
}
}
所以我在这里只是在Blackout模型中调用singleBlockWeekly函数。我想知道为什么即使在singleBlockWeekly
函数中没有任何与SQL相关的代码,我也会出现奇怪的SQL错误
非常感谢您的帮助!谢谢!:) 我想这是一个插件?
除了不能将其作为“Blackout”包含外,还需要使用有文档记录的插件语法“Calendar.Blackout”。
否则,您将加载一个AppModel实例,当然,它没有此方法
如果您调试了模型实例,您可能会发现:
debug($this->Blackout);
此SQL错误始终是误用model include语句的指示器。加载模型时出现问题,请尝试此操作
$this->loadModel('Blackout');
$dates = $this->Blackout->singleBlockWeekly($start_date,$endsOn,$repeatDays,$frequency);
你能为这个发布你的SQL查询吗?这很奇怪,我对这个没有SQL查询,但它给了我一个SQL错误。在这个函数“singleBlockWeekly”中,你写过任何find查询吗?或者请将行添加为$this->loadModel('Blackout');在那之前调用函数nope。其中没有查找查询或任何与数据库相关的函数/代码。请尝试放置
public
而不是var
我只是不小心!我的模型上有两个相同的函数名,这给了我一个奇怪的错误,关于类声明被嵌套,类似这样的。事实上,我已经试过你关于设置日历的建议。Blackout,我已经在$uses部分设置了日历。问题是我遇到了这样一个错误:类声明可能没有嵌套。。但是,我再次注意到,我有两个函数同名,所以我认为这会使问题恶化,但我已经有了正确的声明,只是有一个错误是由两个相同的函数名引起的。无论哪种方式,如果使用插件类,您都需要更加小心地使用声明。