Cakephp validation des données “notEmpty” “nécessaire”

Je suis un newbie sur le gâteau, fait le tutoriel du blog et maintenant je suis en train d'essayer quelque chose de simple pour commencer.
Mais j'ai eu quelque chose que je ne peux pas comprendre.
Sur le modèle PersonalInformation j'ai obtenu la validation des données pour les champs de la table:

C'est mon modèle avec le tableau $validate:

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

Et c'est ma table:

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);

Et voici la vue:

<!-- /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>

Donc, le problème est que, pour une raison quelconque, le "surnom" est une sorte de besoin, je veux dire, quand je clique sur le bouton "soumettre" avec le "pseudo" vides il montre "Seulement caractères alpha-numériques".
Et pour le "sexe" ce n'est pas rien quand aucune n'est sélectionnée.

Si il y a autre chose que j'ai besoin de poster, faites le moi savoir.

  • Le "allowEmpty" travaillé. Je l'avais essayé avant, le problème, c'est qu'elle était le surnom de tableau et je viens de remarquer que sur ADmad post Merci à tous (unfortanly je ne peux pas voter jusqu')
InformationsquelleAutor mloureiro | 2013-02-05