Je plonge plus profond dans kohana et j'aime beaucoup verry beaucoup. en particulier les trucs hmvc et bien plus encore. pour le moment j'ai des problèmes avec l'ajout de mes propres règles à l'instance de validation. La validation fonctionne bien, et je pense aussi que ma propre fonction est appelée correctement. mais le problème est que le message d'erreur pour ma propre fonction de validation n'est pas affiché. Peut-être que quelqu'un peut regarder dans le code pour voir ce que j'ai fait de mal. Merci!ajoutant la règle de validation individuelle et la fonction, kohana 3.0.8
ici est mon code i supprimé quelques trucs pour le raccourcir un peu:
class Controller_Bookmarks extends Controller_DefaultTemplate
{
public function action_create_bookmark()
{
$posts = new Model_Post();
if($_POST){
$post = new Validate($_POST,$_FILES);
//attaching rules
$post ->rule('bookmark_title', 'not_empty')
->rule('bookmark_image', 'Model_Post::email_change');
//add error for custom functionm
$post->error('bookmark_image', 'email_change');
if ($post->check())
{
echo 'yeah';
}else{
print_r($post->errors('validate'));
}
}else{
}
$this->template->content = View::factory('pages/create_bookmark');
}
}
mon modèle:
class Model_Post extends Kohana_Model
{
public function email_change($str)
{
return false;
}
}
mon message d'erreur des messages de définition/validate.php (juste pour les tests) :
<?php defined('SYSPATH') or die('No direct script access.');<br />
return array(
'alpha' => ':field must contain only letters',
'alpha_dash' => ':field must contain only letters and dashes',
'alpha_numeric' => ':field must contain only letters and numbers',
'color' => ':field must be a color',
'credit_card' => ':field must be a credit card number',
'date' => ':field must be a date',
'decimal' => ':field must be a decimal with :param1 places',
'digit' => ':field must be a digit',
'email' => ':field must be a email address',
'email_domain' => ':field must contain a valid email domain',
'exact_length' => ':field must be exactly :param1 characters long',
'in_array' => ':field must be one of the available options',
'ip' => ':field must be an ip address',
'matches' => ':field must be the same as :param1',
'min_length' => ':field must be at least :param1 characters long',
'max_length' => ':field must be less than :param1 characters long',
'phone' => ':field must be a phone number',
'not_empty' => ':field rrrrrrrrrrrrrrrrrrrrr must not be empty',
'range' => ':field must be within the range of :param1 to :param2',
'regex' => ':field does not match the required format',
'url' => ':field must be a url',
'email_change' => ':field gdffddfgdfhgdfhdfhhdfhdfhdfhd',
);
c'est tout, merci beaucoup. si facile que ça puisse être parfois. –