저는 케이크 초보자이며 블로그 자습서를 마쳤습니다. 이제 시작하기가 간단합니다. 하지만 이해할 수없는 것이 있습니다. 이것은 $의 유효성을 배열 내 모델Cakephp 데이터 유효성 검사 "notEmpty" "required"
입니다 :
class PersonalInformation extends AppModel {
/**
* Validation rules
* @var $validate
*/
public $validate = array(
"first_name" => array(
"name" => array(
"rule" => "validName",
"message" => 'Only alpha characters and "." (dots)',
),
),
"last_name" => array(
"name" => array(
"rule" => "validName",
"message" => 'Only alpha characters and "." (dots)',
),
),
"birth_date" => array(
"date" => array(
"rule" => "date",
"message" => "Enter a valid date",
),
),
"nickname" => array(
"alphanumeric" => array(
"rule" => "alphaNumeric",
"message" => "Only alpha-numeric characters",
),
),
"gender" => array(
"notEmpty" => array(
"rule" => "notEmpty",
"message" => "Can't be empty",
),
),
);
} // end class
가 그리고 이것은 내 테이블 : 여기
CREATE TABLE `personal_informations`
(
`id` INT NOT NULL UNIQUE AUTO_INCREMENT,
`first_name` VARCHAR(45),
`last_name` VARCHAR(45),
`birth_date` DATE,
`nickname` VARCHAR(45),
`is_company` TINYINT DEFAULT 0 NOT NULL,
`picture_url` VARCHAR(255),
`gender` ENUM('m','f') NOT NULL,
`notes` TEXT,
`created` DATETIME,
`modified` DATETIME,
PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARACTER SET=utf8;
CREATE INDEX `id_idx` ON personal_informations(id);
그리고 테이블 필드의 데이터 유효성 검사를 가지고 PersonalInformation 모델에 보기입니다 :
<!-- /PersonalInformations/add -->
<div class="">
<h2>Create a personal information</h2>
<?php
echo $this->Form->create();
echo $this->Form->input("PersonalInformation.first_name");
echo $this->Form->input("PersonalInformation.last_name");
echo $this->Form->input(
"PersonalInformation.birth_date",
array(
"separator" => " - ",
"minYear" => date('Y') - 90,
"maxYear" => date('Y')
)
);
echo $this->Form->input("PersonalInformation.nickname");
echo $this->Form->input("PersonalInformation.is_company", array("type" => "checkbox"));
echo $this->Form->input("PersonalInformation.piture_url", array("type" => "file" ));
echo $this->Form->radio("PersonalInformation.gender", array("m" => __("Male"), "f" => __("Female")), array("hiddenField" => false));
echo $this->Form->textarea("PersonalInformation.notes");
echo $this->Form->end("Done");
?>
</div>
그래서 문제는 어떤 이유로 t 그는 "닉네임"이 필요합니다. 즉, "닉네임"이 비어있는 제출 버튼을 클릭하면 "영숫자 문자 만 표시됩니다"라는 의미입니다. "성별"이 선택되지 않은 경우 아무것도 표시되지 않습니다.
내가 게시해야 할 것이 있다면 알려주십시오.
"allowEmpty"가 작동했습니다. 이전에 시도 했었는데 문제는 그것이 닉네임 배열을 벗어난 것이고 ADmad 게시물에 나타났습니다 THanks 모두 (unfortanly 나는 투표 할 수 없음) – mloureiro