私がやろうとしているのは、フォームから送信された日付の年に正しい値があるかどうかを確認することです。正しい値は、バリデーターのコンストラクターでパラメーターとして指定された計画年に与えられます。
次のカスタムバリデーターでタイトルからメッセージを取得します。変数 $this->$plan_year が原因なのですが、理由がわかりません。これはバリデータです:
class MyValidate_YearValidator extends Zend_Validate_Abstract
{
const MSG_YEAR = '';
private $plan_year = 0;
public $minimum = 0;
public $maximum = 0;
protected $_messageVariables = array(
'min' => 'minimum',
'max' => 'maximum'
);
protected $_messageTemplates = array(
self::MSG_YEAR => "Valoarea '%value%' nu este corecta! Anul trebuie sa aibe una din urmatoarele doua valori: '%min%' sau '%max%'."
);
public function __construct( $plan_year )
{
$this->$plan_year = $plan_year;
}
public function isValid($value)
{
$this->_setValue($value);
$anul = substr($value, 0, 4);
//here is the problem
$this->minimum = $this->$plan_year;
$this->maximum = $this->$plan_year + 1;
if ($anul <> $this->minimum && $anul <> $this->maximum && $value != '') {
$this->_error(self::MSG_YEAR);
return false;
}
return true;
}
}
ありがとうございました!ソリン