Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Comment faire pour affecter une valeur à la vue dans un plugin de controleur ?
Lorsque je fait $this->view->msg =''; dans une methode du plugin, l'erreur suivante s'affiche :
Strict standards: Creating default object from empty value in /home/supagro/www/lib/Test/Plugins/ErrorForm.php on line 45
Hors ligne
voila le plugin, sur la ligne ou je retour un tableau d'erreur (return $arrayErrors;), j'aurai aimé affecter directement cette valeur à la vue.
require_once 'Zend/Controller/Plugin/Abstract.php';
/**
* @name ErrorForm Class
* @category Plugin
* @package Plugin_ErrorForm
*/
class Plugin_ErrorForm extends Zend_Controller_Plugin_Abstract
{
public $filters = array();
public $validators = array();
public function getErrors($values)
{
$errors = array();
$input = new Zend_Filter_Input($this->filters, $this->validators, $values);
if ($input->hasInvalid()) {
$errors = $input->getMessages();
}
echo $input->prenom;
print_r($input);
if (count($errors) == 0) {
$this->_CLEAN = $input;
return false;
} else {
//on affiche les erreurs dans le formulaire
foreach ($errors as $key=>$val) {
$arrayErrors[$key] = implode('<br />', $val);
}
return $arrayErrors;
}
}
public function setFilter($filters){
$this->filters = $filters;
return $this;
}
public function setValidators($validators){
$this->validators = $validators;
return $this;
}
}
Hors ligne
Bonjour,
Dans un plugin, la vue par défaut n'est pas créée. Il vaudrait mieux faire ça dans un helper si tu utilises la vue instanciée automatiquement par le ZF (et le $this->view dans un plugin n'a pas de signification, contrairement à un helper).
Sinon tu peux instancier ta vue dans le index.php et ajouter la mettre par exemple dans la registry pour l'utiliser ensuite dans ton plugin
A+, Philippe
Hors ligne