Ich habe eine benutzerdefinierte Validator-Klasse namens "EndTimeValidator" in Common \ Komponenten-Namespace erstellt.Modell benutzerdefinierte Client-Seite Validierung
Code:
namespace common\components;
use yii\validators\Validator;
class EndTimeValidator extends Validator
{
public function init()
{
parent::init();
$this->message = 'Event EndTime must be greater than StartTime.';
}
public function validateAttribute($model, $attribute)
{
$startDate = $model->StartDate;
$endDate = $model->EndDate;
$startTime = $model->StartTime;
$endTime = $model->EndTime;
if(($startDate == $endDate) && $startTime != "" && $endTime != "" )
{
if(strtotime($endTime) < strtotime($startTime))
{
$this->addError($attribute, $this->message);
}
}
}
public function clientValidateAttribute($model, $attribute, $view)
{
$startDate = $model->StartDate;
$endDate = $model->EndDate;
$startTime = $model->StartTime;
$endTime = $model->EndTime;
if(($startDate == $endDate) && $startTime != "" && $endTime != "" )
{
if(strtotime($endTime) < strtotime($startTime))
{
return <<<JS
messages.push($this->message);
JS;
}
}
}
}
Und in Modell I enthalten zuerst diesen Weg und definiert die Validierung wie folgt:
use common\components\EndTimeValidator;
['EndTime', EndTimeValidator::class],
Frage aktualisiert:
Aber es ist zu geben ich unter Ausnahme:
Aufruf an eine Elementfunktion getAttributeLabel() auf einem Nicht-Objekt
I haben auf diesen link bezeichnet. Mache ich etwas falsch? Bitte führen Sie mich. Vielen Dank!
Dank es hat funktioniert! Aber danach gibt es mir immer noch einen Fehler. Ich habe die Frage aktualisiert. Kannst du bitte nochmal helfen? – Chinmay
Bitte zeigen Sie den vollständigen Fehler und die Datei, wo es zeigt – Yupik