ここでまともなアプローチを見つけようとしています...
ユーザーがフォームでドロップダウンを選択するかどうかに基づいて、他のいくつかのフォームフィールドを表示または非表示にするフォームがあります。フォーム フィールドが表示されている場合は、必須にする必要があります。表示されていない場合は、必須にしたくありません。
モデルルール内でこれを処理するためのアプローチを見つけようとしています-モデルルール()関数で次のようなことを試しました:
$requiredFields = 'cashAtClosing, offerPrice, closingDate, financingType,surveyDays,'.
'earnestMoney, escrowAgent, escrowAgentAddress, surveyProvider, surveyDays, titlePolicyPayment,'.
'titleObjectionDays, titleCompany, titleCompanyAddress, optionFee, optionDays, optionCredit';
if ($this->financingType == "THIRDPARTYFINANCE")
{
Yii::trace("Add Financing Type Rules");
$requiredFields .= ',creditApprovalRequired,creditApprovalDays,loan1Amount, loan1DueInFullYears, '.
'loan1InterestNotToExceed, loan1InterestNotToExceedYears, loan1OriginationNotToExceed';
}
else
{
$safeFields .= ',creditApprovalRequired,creditApprovalDays,loan1Amount, loan1DueInFullYears, '.
'loan1InterestNotToExceed, loan1InterestNotToExceedYears, loan1OriginationNotToExceed';
}
array_push($rulesArray, array($requiredFields, 'required'));
問題は、ルール関数がモデルにデータが入力される前に呼び出されているように見えることです。そのため、私の例では $this->financingType が常に空であるため、このコードは機能しません。
ここでより良いアプローチは何ですか?
ありがとう。