probleme helpers

Ce sujet est résolu
Default
,

Bonjour,

J'ai un probleme avec un helper que j'ai créer, le helper date

<?php
class DateHelper extends AppHelper{
    public function show($datetime, $heure = false){
        $tmstamp = strtotime($datetime);
        $jour = array('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
        $mois = array('Janvier', 'Février', 'Mars', 'Avri', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
        $date = $jour[date('N', $tmstamp) - 1].' '.date('d', $tmstamp).' '.$mois[date('n', $tmstamp) - 1].' '.date('Y', $tmstamp);
        if($heure == true)
            $date .= 'à '.date('H:i:s', $tmstamp);
        return $this->output($date);
    }
}
?>

je l.utilise comme sa

<?php
$paginator->options(array('url' => $this->passedArgs));
echo $paginator->numbers();
//debug($articles);
foreach($articles as $a):
    $a = $a'Post'];
    echo '<h1>'.$a'titre'].'<br/>'.$this->date->show($a'date']).'</h1>';
    echo '<p>'.$a'contenu'].'</p>';
endforeach;
?>

mais j'ai cette erreur

Undefined property: View::$date [APP\views\posts\index.ctp, line 7]

ligne 7 = echo '

'.$a'titre'].'
'.$this->date->show($a'date']).'

';

voici le petit bout de mon controller
<?php
class PostsController extends AppController{
    public $name = 'Posts';
    public $paginate = array(
        'Post' => array(
            'limit' => 1,
            'order' => array('Post.date' => 'desc')
        )
    );
    var $heplers = array('Date');


    public function index(){
        $q = $this->paginate('Post');
        $this->set('articles', $q);
    }
}
?>

Merci de m'aider

4 Réponse

Default
,

Salut à toi,

Alors je ne sais pas trop comment tu as fait pour faire ton helper c'est pourquoi je vais reprendre de zéro.

Pour créer ton helper il faut d'abord le mettre dans /views/helpers/ tu enregistres bien ton fichier helper sous le nom qui lui convient (date.php pour DateHelper par exemple).

Ensuite, dans le controller où tu veux l'utiliser, il faut bien entendu l'appeler comme tu as fais :

var $helpers = array('date');

Enfin, pour l'utiliser dans ta vue, il faut simplement l'appeler ainsi :

$maVariable = $nomDuHelper->nomDeLaMethode();

Ce qui devrait donner pour toi :

$maDate = $date->show($a'date']);
echo '<h1>'.$a'titre'].'<br/>'.$maDate.'</h1>';
//Ou
echo '<h1>'.$a'titre'].'<br/>'.$date->show($a'date']).'</h1>';

Voilà ! En espérant t'avoir aidé, bonne chance ;)

1
,

Réponse plus simple : Tu as écris heplers au lieu de helpers dans ton Controller :)

Default
,

Merci a vous deux!

PS: J'ai rit quand j'ai vu que ma faute était simplement sur le nom de la variable!

Default
,

Aussi oui xD