Call to a member function find() on a non-object in ...

Voilà en gros ce qui s'affiche quand j'essaye de lancer une page du controller
Le code de ma class NewsController

<?php
class NewsController extends AppController
{
    var $name = 'news';
    function index()
    {
        $allNews = $this->New;
        $all = $allNews->find('all');

        $this->set('articles', $all);
    }
}

enregistré dans NewsController.php

celle de ma class model New

<?php
class New extends AppModel
{
    var $name = 'New';
}

enregistré dans new.php

ma table s'appelle new.

Je tiens à préciser que je suis débutant avec cake,
je suis le tuto sur ce site et aimerait avancer merci .

6 réponses


karmalo
Réponse acceptée

tu as appelé ta table new dans ta base de données? il faut les nommer au pluriel, donc news

Flohw
Réponse acceptée

News est invariable… pluriel et singulier c'est news (quand on parle des nouvelles, sinon c'est variable)
il faut que ta table et ton modele s'appelle news/News
et effectivement, tu n'as pas besoinde la propriété $name avec cakephp 2

Ca me parait bizarre ton code
Essaie ca

function index()
    {
        $this->set('news', $this->New->find('all'));
    }

Si tu es sur cakephp 2 et en php5, tu n'as pas besoin de

var $name = 'news';
ccvf3s
Auteur

Merci pour ta réponse, j'ai essayé le code toujours la même érreur, une autre idée merci.

Pourquoi écrire ça :

<?php
    $allNews = $this->New;
    $all = $allNews->find('all');
?>

J'avoue que je comprends pas là :s

ccvf3s
Auteur

merci je revois ça, mais le problème je nomme le model et le controller pareil?

merci ça marche problème de noms merciii.