2016-07-26 10 views
2

cakePHP: how set error validation to input field manually in controller을 읽은 후에 모델없이 폼을 사용하면 컨트롤러에서 validationError를 표시하는 방법이 궁금합니다.CakePHP 2.x : 모델없이 validationErrors를 수동으로 설정하는 방법은 무엇입니까?

예를 들어 제출할 수있는 양식이있는 checkSomething.ctp보기가 있습니다.

echo $this->Form->create(false); // If we put "SomeModel" here, it would work. 
echo $this->Form->input("myField"); 

그리고 우리는 /Home/CheckSomething/입니다.

class HomeController extends AppController{ 
    public function CheckSomething(){ 

     // So manually validate a field 
     if(strlen($this->request->data["myField"]) < 5){ 

      // myField is not valid, so we need to show an error near that field 
      $this->SomeModel->invalidateField("myField", "You must enter at least 5 characters"); 

      // How to do this? 

     } 
    } 
} 

여기 모델을 사용할 수 없습니다 ... 모델이없는 입력란에 validationError를 설정하는 방법은 무엇입니까? 수동으로 이러한 양식에서 오는 필드를 무효화하는 방법?

답변

1

가장 쉬운 방법은 직접보기로 오류를 보낼 것입니다 : 바로이 문제를 해결하는 방법입니다

echo $this->Form->create(false); 
echo $this->Form->input('myField', [ 
    'error' => isset($errors['myField']) ? $errors['myField'] : false 
]); 
+0

:

$errors = []; if (strlen($this->request->data["myField"]) < 5) { $errors['myField'] = 'You must enter at least 5 characters'; } $this->set('errors', $errors); 

그리고 당신의보기에서

. 감사! – Koen