입력에 대한 사용자 지정 유효성 검사기 규칙을 추가하려고 할 때 약간의 문제가 있습니다. 이것은 내 코드입니다.Yii2의 사용자 지정 필드 검사기 클라이언트 쪽
class Category extends \yii\db\ActiveRecord{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'cat';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['cat_cod','cat_deep','cat_father'], 'required'],
//other rules
[['cat_cod'], 'test'],
];
}
public function test($attribute){
$cat_cod = $this->$attribute;
if($cat_cod == 'test'){
$this->addError($attribute,"Error Test");
}
}
모델 그래서, 이것은 단지 테스트입니다,하지만 난 내 양식을 제출할 때 그것을 잘 작동하지만 클라이언트 측 validaton에서 작동하지 않습니다.
는 cat_cod가 비어있는 경우 : 나 테스트가 클라이언트 측에서 확인하지 않을 쓸 때
가내가 입력 필드 2 화상에서
에서 테스트를 쓰면
업데이트 Afte Yupik Comments, 서버 측 유효성 검사가 제대로 작동하므로 클라이언트 측 유효성 검사를 추가하려면 AjaxValidation을 구현해야합니다. 그래서 나는이 문제를 해결할 수있는 방법을 내 컨트롤러에서 지금이
$form->field($model, 'cat_cod',['enableAjaxValidation' => true])->textInput();
처럼 하나의 필드에 아약스 검증을 활성화 한? 문서화가 명확하지 않습니다. 이것은 내가 시도한 것입니다.
if($model->load(Yii::$app->request->post()) && $model->validate()){
if (Yii::$app->request->isAjax) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
//something else
음을 읽어하지만 난이 튜토리얼 [튜토리얼]을 따라 (https://www.youtube.com/watch?v=immWONYVgTs)과는 아약스 검증이기 때문에 자신의 사용자 정의 유효성 검사를 완벽하게 완벽하게 –
이 작업의 작동 . 아약스 유효성 검사 사용, 컨트롤러에서 처리하고 작동합니다. – Yupik