Je suis venu avec une belle solution facile à ce problème en utilisant 2.x Cake, assurez-vous de placer les éléments suivants au-dessus de votre classe de modèle:
App::uses('CakeTime', 'Utility');
Utilisez un Validat règle ion comme ce qui suit:
public $validate = array(
'deadline' => array(
'date' => array(
'rule' => array('date', 'ymd'),
'message' => 'You must provide a deadline in YYYY-MM-DD format.',
'allowEmpty' => true
),
'future' => array(
'rule' => array('checkFutureDate'),
'message' => 'The deadline must be not be in the past'
)
)
);
Enfin, la règle de validation personnalisée:
/**
* checkFutureDate
* Custom Validation Rule: Ensures a selected date is either the
* present day or in the future.
*
* @param array $check Contains the value passed from the view to be validated
* @return bool False if in the past, True otherwise
*/
public function checkFutureDate($check) {
$value = array_values($check);
return CakeTime::fromString($value['0']) >= CakeTime::fromString(date('Y-m-d'));
}
Qu'est-ce que j'ai manqué? ;) –
Formatage correct du code de démarquage. :) – deceze