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 '<h1>'.$a'titre'].'<br/>'.$this->date->show($a'date']).'</h1>';
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éponses


mespeche
Réponse acceptée

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 ;)

Grafikart
Réponse acceptée

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

domix24
Auteur

Merci a vous deux!

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

Aussi oui xD