1

beforeSave関数でモデルからフラッシュメッセージまたはエラーメッセージを設定し、ビューでエラー/メッセージを読み取る方法はありますか? そして、私は検証エラーについて話しているのではありません。

4

1 に答える 1

7

これらの行に沿ったものは、手元にある情報で動作するはずです:

<?php
class AppModel extends Model {

    public $lastErrorMessage;

    public function beforeSave(...) {
        $this->lastErrorMessage = null;
        return true;
    }

}

<?php
class MyModel Extends AppModel {

    public function beforeSave(...) {
        parent::beforeSave(..);
        if (error) {
            $this->lastErrorMessage = 'Some error message';
            return false;
        }
        return true;
    }
}

<?php
class MyController extends AppController {

    public function action() {
        if ($this->MyModel->save($this->request->data)) {
        } else {
            $message = "Some default message";
            if ($this->MyModel->lastErrorMessage) {
                $message = $this->MyModel->lastErrorMessage;
            }
            $this->Session->setFlash($message);
        }
    }
}
于 2012-06-15T19:37:04.523 に答える