Problème résolu !
Bonjour,
Toujours entrain de m'initier à Yii, je souhaiterais cette fois ajouter un champ captcha à un formulaire généré.
Voici le code dans la vue :
<?php if(CCaptcha::checkRequirements()): ?>
<div class="row">
<?php echo $form->labelEx($model,'verify_code'); ?>
<div>
<?php $this->widget('CCaptcha'); ?>
<?php echo $form->textField($model,'verify_code'); ?>
</div>
<div class="hint">Please enter the letters as they are shown in the image above.
<br/>Letters are not case-sensitive.</div>
<?php echo $form->error($model,'verify_code'); ?>
</div>
<?php endif; ?>Dans le controler Members, après modifications :
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('login, pass, email, registration_date, connection_date, sexe, date_of_birth, rank, profile_photo, active, ban', 'verify_code','required'),
array('active', 'numerical', 'integerOnly'=>true),
array('login, pass, email, profile_photo', 'length', 'max'=>255),
array('sexe', 'length', 'max'=>5),
array('rank', 'length', 'max'=>15),
array('ban', 'length', 'max'=>50),
array('verify_code', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements()),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, login, pass, email, registration_date, connection_date, sexe, date_of_birth, rank, profile_photo, active, ban', 'safe', 'on'=>'search'),
);
}Sauf que quand j'accède à la page subscribe.php.
J'ai cette erreur,
Quote
PHP warning
include(verify_code.php): failed to open stream: No such file or directory
/home/login/workspace/project/ressources/framework/YiiBase.php(418)
include(verify_code.php): failed to open stream: No such file or directory
/home/login/workspace/project/ressources/framework/YiiBase.php(418)
406 {
407 foreach(self::$_includePaths as $path)
408 {
409 $classFile=$path.DIRECTORY_SEPARATOR.$className.'.php';
410 if(is_file($classFile))
411 {
412 include($classFile);
413 break;
414 }
415 }
416 }
417 else
418 include($className.'.php');
419 }
420 else // class name with namespace in PHP 5.3
421 {
422 $namespace=str_replace('\\','.',ltrim($className,'\\'));
423 if(($path=self::getPathOfAlias($namespace))!==false)
424 include($path.'.php');
425 else
426 return false;
427 }
428 return class_exists($className,false) || interface_exists($className,false);
429 }
430 return true;En testant dans mon controler, j'ai compris que autoload se référait au tableau require dans la méthode rules...
Ce qui m'étonne, c'est que Yii cherche à charger une class avec pour nom, celui de mon champ. Mais après quelques recherches, je n'ai pas trouvé de class login, pass, email etc... Par ailleurs, si Yii utilise bien un class pour chaque champs, j'ai du mal à trouver l'utilité.
D'ou vient mon erreur ?
Cordialement,
JHQL.

Help













