3

関数をモデルに呼び出すと、このエラーが発生します。

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;
            }
        }
     }
}

これは私のModel

class Blackout extends CalendarAppModel
{
   var $name = 'Blackout';
   var $useTable = false;
   function singleBlockWeekly($startDate,$endDate,$repeatEvery = array(),$freq)
   {
     /*my code here...brevity...*/
   }
}

つまり、ここで行っているのは、ブラックアウト モデルで singleBlockWeekly 関数を呼び出しているだけです。singleBlockWeekly関数に SQL 関連のコードがないのに、なぜ奇妙な SQL エラーが発生するのでしょうか?

あなたの助けは大歓迎です! ありがとう!:)

4

2 に答える 2

2

これはプラグインだと思いますか?「Blackout」として含めることはできないため、文書化されたプラグイン構文「Calendar.Blackout」を使用する必要があります。そうしないと、もちろんこのメソッドを持たない AppModel インスタンスをロードすることになります。

モデル インスタンスをデバッグしていれば、自分でそれを見つけることができたはずです。

debug($this->Blackout);

この SQL エラーは常に、モデル インクルード ステートメントの誤用を示しています。

于 2013-06-18T06:27:46.287 に答える
1

モデルの読み込みに問題があるため、これを試してください

$this->loadModel('Blackout');
$dates = $this->Blackout->singleBlockWeekly($start_date,$endsOn,$repeatDays,$frequency);
于 2013-06-18T06:37:59.093 に答える