Я создал форму, которую мне нужно проверить с помощью модели и контроллера .Здесь моя формакак проверить поле формы в CakePHP, используя модель и контроллер
index.ctp
<?php echo $this->Form->create('Contact',array('url'=>array('controller'=>'contacts','action'=>'add')));
echo $this->Form->text('name');
Модель: Контакт .php
class Contact extends AppModel
{
var $name = 'Contact';
var $useTable = false;
public $validate = array(
'name' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => false,
'message' => 'Letters and numbers only'
),
'between' => array(
'rule' => array('between', 5, 15),
'message' => 'Between 5 to 15 characters'
)
)
);
}
контроллер: ContactsController.php
public function add()
{
$this->Contact->validates();
$this->request->data['Country']['country_name']=$this->request->data['Contact']['country'];
$this->Country->saveall($this->request->data);
$this->redirect('/Contacts/index/');
}
Я пытаюсь выполнить проверку по googling, но мне кажется трудным для меня, поэтому, если кто-нибудь может описать процесс, это будет большой помощью. Моя версия cakephp - 2.3.8. Мне просто нужно проверить это поле имени, так как когда я нажимаю кнопку «Отправить», оно отображает это сообщение в форме.
Ваш вопрос довольно неясно. Также обязательно указывайте свою точную версию CakePHP и соответствующим образом пометьте свой вопрос! Это сказано: ** http: //book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html** – ndm
$ this-> Contact-> validates() ; возвращает логическое значение true или false в зависимости от действительных или onvalid данных, а также использовать $ this-> Contact-> set ($ this-> request-> data); до $ this-> Contact-> validates(); – Abhishek
Я также отредактировал свой вопрос, когда я положил $ this-> Contact-> validates() после того, как форма представила его, показывая мне эту ошибку Неустранимая ошибка: вызов функции-члена проверяет() на не-объект в/opt/lampp /htdocs/projects/cake/cakephp/app/Controller/ContactsController.php в строке 74 .. пожалуйста, дайте мне знать, если вам понадобятся какие-либо дополнительные данные от меня – Ron