私はzendフレームワークを使用していますが、これは私のモデルとコントローラーメソッドのスケルトンです
Model Class methods :
_validateRegisterForm($postData)
{
//validating data using Zend_Filter_Input
//Returns instance of Zend_Filter_Input
}
//Return true/false
protected _isNumberAlreadyExists()
{
// I dnt want to perform above validation using zend_validate_db_recordexists
//since i dnt want to mix my dblogic with in buisness logic
}
register($postData)
{
$input=$this->_validateRegisterForm($postData);
if(!$input->isValid())
{
//What should it return to controller
}
if(!$this->_isNumberAlreadyExists($input->number))
{
//What should it return to controller
}
}
controller class api
$this->_model->register($postData)
コントローラークラスに同じ形式でエラーを返すために、以下の条件を与えたい
if(!$input->isValid())
{
//What should it return to controller
}
if(!$this->_isNumberAlreadyExists($input->number))
{
//What should it return to controller
}
モデルクラスからfalseを返すこともできますが、そのためにはzend_filter_Inputインスタンスまたはエラーメッセージ(番号がすでに存在する場合)を保存する必要があります。その場合、エラーメッセージを共通の形式に変換してコントローラーに許可する別のエラーハンドラーオブジェクトを作成する必要があります。それらのエラーをフェッチするには
私には、zendフレームワークで物事を行う適切な方法のようには見えません。誰かがzendフレームワークでモデルからコントローラーにエラーを渡すことについて私を助けたいですか、またはzendフレームワークでエラーを処理するための他の方法を提案しますか?