bonsoir tout le monde,
voila je suis débutant dans le framework cakephp et j'ai un message d'erreur qui s'affiche
Fatal error: Call to a member function numbers() on a non-object in C:\Program Files\EasyPHP-12.1\www\CakePHP\app\View\Posts\index.ctp on line 3
le code de mon fichier index.ctp est
<?php
echo $this->Paginator->numbers();
foreach ($articles as $a):
echo '<div>'.$this->Html->image('/mCube/images/icon3.png').'<p>'.$this->Html->link($a"Post"]"titre"],array('action'=>'voir',$a'Post']'id'])).'</p>';
echo '<br/><span>Le '.$this->Date->show($a"Post"]"date"]).' :: '.$a"Categorie"]"titre"].'</span></div>';
echo '<p>'.$a"Post"]"contenu"].'</p>';
endforeach;
?>
j'ai pourtant été dans la doc sur le site de cakephp et suivi les instructions de paginator !!!
oui le voici :
<?php
class PostsController extends AppController{
var $name = 'Posts';
var $paginate = array(
'Post' => array(
'limit' => 3,
'order' => array(
'Post.date' => 'Desc'
)
));
var $helpers = array('Html','Date');
var $uses = array('Post','Comment');
function beforeFilter(){
parent::beforeFilter(); //réinitialise le beforeFilter de appControler
$this->Auth->allow(array('index','categories')); //permet les 2 actions suivantes index et categories
}
function index(){
$q = $this->paginate('Post');
$this->set('articles', $q);
}
function categories($id){
$q = $this->Post->find('first',array(
"condition" => array('Post.id' => $id)
));
$this->set('a', $q);
$this->render("index");
}
function voir($id){
if(!empty ($this->data)){
if($this->Comment->validates($this->data)){
$this->Session->setFlash('Votre commentaire a bien été posté');
$this->Comment->save($this->data);
}
else{
$this->Session->setFlash('Merci de valider vos champs');
$this->validateErrors($this->Comment);
}
}
$q = $this->Post->find('first',array(
"condition" => array('Post.id' => $id)
));
$this->set('a', $q);
}
function edit($id=null){
$c = $this->Post->Categorie->find('list',array(
'recursive' => -1, //pour n'avoir que les categories
'fields' => array('id','titre')
));
$this->set('cats',$c);
$this->layout = 'admin';
if(isset($this->data)){
$this->Post->save($this->data);
$this->Session->setFlash('Article bien édité');
//$this->redirect('alist');
}
if($id!=null){
$this->Post->id = $id;
$this->data = $this->Post->read();
}
}
function del($id){
$this->Post->delete($id);
$this->Session->setFlash('Article bien supprimé');
$this->redirect('alist');
}
function alist(){
$this->layout = 'admin';
$q = $this->paginate('Post');
$this->set('articles', $q);
}
}
?>
j'ai essayé en enlevant le 'Post' mais mtn j'ai un autre message d'erreur qui est
Fatal error: Class 'String' not found in C:\Program Files\EasyPHP-12.1\www\CakePHP\app\Model\comment.php on line 25
C'est ma faute au lieu de regler le probleme de pagination, j'ai continué le tuto ajouter des commentaires à votre blog :s
j'ai reglé le probleme de la class String mais toujours le meme message d'erreur pour la pagination
oui oui c'est bien ca toujours le meme message et il apparait quand je veux acceder à une categorie de mon blog
Fatal error: Call to a member function numbers() on a non-object in C:\Program Files\EasyPHP-12.1\www\CakePHP\blog\app\View\Posts\index.ctp on line 3