2016-07-26 7 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

関連する問題