CartLogicのerrorMessageプロパティについて
今回はCartLogicのerrorMessageプロパティを見ていきたいと思います。
errorMessageプロパティはカート内のエラーメッセージの表示で利用します。
Cart02ページのお客様情報入力ページで、メールアドレスといった必ず入力しなければいけない項目に関して、
入力していなかった、@が入っていなかったといったエラーチェックを行った後のメッセージの表示でerrorMessageプロパティを利用します。
コードを確認すると、
/soyshop/webapp/src/cart/_common/pages/Cart02Page.class.phpの265行目付近の
$res = $this->component->checkError($user, $cart, UserComponent::MODE_CART_REGISTER);から
/soyshop/webapp/src/component/UserComponent.class.phpの243行目のcheckErrorの処理を見ると
/* メールアドレス */ if(tstrlen($user->getMailAddress()) < 1){ $app->addErrorMessage("mail_address", "メールアドレスを入力してください。"); $res = false; }else if(!soyshop_valid_email($user->getMailAddress())){ $app->addErrorMessage("mail_address", "メールアドレスの書式が不正です。"); $res = false; }
入力した内容を元に条件を満たさなかったら、addErrorMessageに何の項目(mail_address)でどのようなエラーなのかを登録しておきます。
エラーがあった場合は次のページに遷移せず同じページに戻り、
/soyshop/webapp/src/cart/_common/pages/Cart02Page.class.phpの183行目付近の
$this->component->buildForm($this, $user, $cart, $mode);から
/soyshop/webapp/src/component/UserComponent.class.phpの452行目のappendErrorsの処理を見ると
$page->createAdd("mail_address_error", "ErrorMessageLabel", array( "text" => $app->getErrorMessage("mail_address") ));
getErrorMessageに項目の指定をして、エラーチェックの際に保存したメッセージを取り出します。
createAddの第二引数でErrorMessageLabelクラスが指定されていますが、HTML側での出力は
<p class="error" soy:id="mail_address_error">メールアドレスが正しく入力されていません。</p>
いつも通り、soy:idで出力します。