お世話になります、cakephp2で
使用モデルを定義しているのに「non-object」エラーとなってしまいます
ページは原因切り分けのため一つのモデルを使っていますが、これから複数のモデルを使用します
モデルを置くべき階層にモデルを用意して
/app/Model/DtbQuestion.php
内容には明示的に自身の名前を定義し
class DtbQuestion extends AppModel {
public $name = 'DtbQuestion';
public $validate = array(
//メールアドレス
'email' => array(
'rule1' => array(
'rule' => 'notEmpty',
'message' => '▲メールアドレスは必須です。',
),
'rule2' => array(
'rule' => 'email',
'message' => '▲メールアドレスの形式で入力して下さい。'
),
),
);
}
コントローラーを置くべく階層にコントローラーを用意し
/app/Controller/FooController.php
内容には使用モデルを明記して
class FooController extends AppController {
//使用モデル
public $uses = array('DtbQuestion');
public function huga(){ if ($this->request->is('post')){ //バリデーション $this->**DtbQuestion**->set($this->request->data); //if(!$this->DtbQuestion->validates()){ //バリデーションに失敗した場合は処理停止 //$this->Session->setFlash('登録内容に誤りがありますので修正してください。', 'Information/alert'); //$this->render(); //return; //} }
}
hugaページでポストすると
以下の様なエラーとなってしまいます
Error: Call to a member function set() on a non-object
File: /app/Controller/FooController.php
Line: XX
DtbQuestionをデバッグすると
debug($this->DtbQuestion)
NULL
となるのでうまく「DtbQuestion」がロードされていない模様です
別のページは同じ記述方法でうまくバリデーションが動いているのですが
どこの記述方法が間違っているのでしょうか??
また、cakephpをいじっていると
エラーが大雑把でなにが悪いのかよく分からないことが多いのですが
ベテランの方はこういった場合どう対処するのかもお教えいただけたら嬉しいです
よろしくお願い申し上げます
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/24 03:41
2015/11/24 03:47