モデルでいくつかの検証を行い、何か問題が発生した場合は中止する必要があります。簡略化したバージョンでは、次のようになります。
class Model extends RedBean_SimpleModel
{
public function update()
{
if(method_exists($this, 'validate') and ! $this->validate())
$this->abort(); // made-up method
}
}
問題は、このabort
メソッド (または類似のメソッド) が存在しないように見えることです。ドキュメントは例外でそれを行うことを提案していますが、プロセスをより透過的にしたかったのです。Model コード内で例外をキャッチできませんでした (エラーの処理方法は既にわかっているため、繰り返しを避けるためです)。
ここで見つけた解決策は、トランザクションを開いてからエラーをロールバックすることでした。しかし、私は本当にこの種のオーバーヘッドを望んでいません。何か考えはありますか?