2012-04-07 9 views
0

최근에 CakePHP를 사용하기 시작했으며 양식 테스트 전용으로 만든 대화 상대 앱에서 유효성 검사를받을 수 없었습니다. 모달에 $validate 배열을 설정하면 별표가 양식에 표시되지만 양식을 제출할 때 유효성 검사 메시지가 표시되지 않습니다.CakePHP 유효성 검사에서 메시지가 표시되지 않습니다.

/app/View/Contacts/index.ctp

<h1>Contact Form</h1> 
<?php 
echo $this->Form->create('Contact'); 
echo $this->Form->input('name'); 
echo $this->Form->input('age'); 
echo $this->Form->end('Submit This Form!!!'); 
?> 

/app/Controller/ContactsController.php

<?php 
    class ContactsController extends AppController { 

    public $helpers = array('Html', 'Form'); 

    public function index() { 

    } 
} 
?> 

/응용 프로그램/모델 : 여기 내 코드입니다 /Contact.php

<?php 
class Contact extends AppModel { 
    var $useTable = false; 

    public $validate = array(
     'name' => array(
      'rule' => 'notEmpty', 
      'message' => 'Cannot leave this field blank.' 
     ), 
     'age' => array(
      'rule' => 'notEmpty', 
      'message' => 'Cannot leave this field blank.' 
     ) 
    ); 
} 
?> 
+0

컨트롤러 내에서 $ this-> Contact-> validationErrors 속성을 살펴 보겠습니다. $ this-> Contact-> set ($ this-> data);을 호출해야합니다. (또는 -> 저장 (...))을 수행하면 유효하지 않습니다. 그렇지 않으면 매번 빈 배열이 생깁니다. – Duncan

답변

1

당신이 실수로 표시 한 코드는 다음과 같습니다. 컨트롤러에서 양식 데이터를 처리하는 방법. 아마도 데이터를 모델로 설정하는 것을 잊었을 것입니다.

여기에이 튜토리얼에서 살펴 보자 : (!) http://www.dereuromark.de/2011/12/15/tools-plugin-part-2-contact-form/

내 생각 엔 당신의 빈 index 액션을보고. 아무 것도하지 않습니다. 유효성 검사를 어떻게 트리거해야합니까?

위의 링크를 참조하십시오. set() 및 validates()를 사용하여 이러한 양식의 유효성을 검사하는 방법을 보여줍니다.

if ($this->request->is('post') || $this->request->is('put')) { 
    $this->ContactForm->set($this->request->data); 
    if ($this->ContactForm->validates()) { 
    } 
} 

PS : 은 기본적으로 그것은 아래로 비등하고 "연락처"때문에 여기에 단어가 정말하지 않고 당신이 컨트롤러에 "ContactController을"의 이름을 변경 제안 뜻 무슨 의미 나던. 또한 URL을 만듭니다. /contact

+0

아니요, 'ContactsController'가 올바른 것입니다. 컨트롤러 이름은 복수형이어야합니다. – JJJ

+0

나는 관례가 무엇인지에 대해 말하고 있지 않다. (나는 그들에 대해 잘 알고있다.) 나는 또한 당신이 반드시 그렇게해야한다고 말하지 않았다. 나는 (블로그에 명시된대로) 그렇게하는 것이 현명 할 것이라고 제안했지만 여전히 당신에게 관련 정보를 보여주지 못했습니다. – mark

+0

나는 당신이 유파가 나라고 생각했다고 믿는다. 당신이 "아직도 당신에게 관련 정보를 보여주지 못했던 방법으로"라고 말했기 때문이다. Juhana는 OP가 아닙니다. 실제로 내가 가진 모든 것을 보여주었습니다. 게시 한 링크를 읽으 려하지만 어제 Cake 만 사용하기 시작했습니다. 컨트롤러를 사용하기 전에 유효성을 검사 할 수 있다는 인상하에있었습니다. 내가 살펴보고 작동하는지 알려 드리겠습니다. 도와 주셔서 감사합니다! – drewwyatt

관련 문제