2016-01-22 1 views
0

J'ai migré de CakePHP 1.3 vers CakePHP 2.x, mais dans la liste des nouvelles, j'ai cette erreur:"Notice (8): Variable indéfinie" dans View (migration de CakePHP 1.x vers 2.x)

Notice (8): Undefined variable: newsSet [APP/View/newsSets/view.ctp, line 19] 

Mon contrôleur est:

class NewsSetsController extends AppController { 

    public $name = 'newsSets'; 
    public $helpers = array('Html', 'Form', 'Session'); 
    public $uses = array('Client', 'Block', 'NewsSet', 'Curse', 'Gallery', "News"); 

    public function index() { 
     $this->NewsSet->recursive = 0; 
     $this->set('newsSets', $this->paginate()); 
    } 

    public function view($id = null) { 
     if (!$id) { 
      $this->flash(__('Invalid NewsSet', true), array('action'=>'index')); 
     } 
     $newsset = $this->NewsSet->read(null, $id); 
     $block = $this->NewsSet->Curse->Block->findById($newsset['Curse']['block_id']); 
     $this->set('block', $block); 
     $news = $this->NewsSet->News->find("all", array('conditions' => array('News.news_set_id' => $id), 'order' => 'News.order ASC, News.created DESC' , 'recursive' => 1)); 
     $this->set('news', $news); 
     $tree = $this->navTree($id, $newsset['NewsSet']['curse_id']); 
     $this->set('tree', $tree); 
    } 
} 

Mon point de vue:

<p><i>Creat: <?php echo $newsSet['NewsSet']['created']; ?></i></p> 

Répondre

1

Vous avez envoyé $news à la vue, par l'émission

$news = $this->NewsSet->News->find("all", array('conditions' => array('News.news_set_id' => $id), 'order' => 'News.order ASC, News.created DESC' , 'recursive' => 1)); 
$this->set('news', $news); 

mais référencent $newsSet.

Ce qui suit devrait fonctionner:

<p><i>Creat: <?php echo $news['News']['created']; ?></i></p> 

Si vous avez défini les relations correctes entre News et NewsSet (à savoir belongsTo ou hasOne), ce qui suit devrait également fonctionner.

<p><i>Creat: <?php echo $news['NewsSet']['created']; ?></i></p> 
+0

Salut @InigoFlores, merci. J'ai déjà fait le changement mais cela ne fonctionne pas: Indéfini index: NewsSet – r22s

+0

Je suppose que c'est la deuxième ligne qui échoue. Veuillez confirmer que 'News belongsTo NewsSet'. –

2

changement $this->set('news', $news); à $this->set('newsSet', $news);.

+0

grâce au format ma réponse – Sahadev

0

Avis (8): Undefined variable: newsSet [APP/Voir/newsSets/view.ctp, ligne 19]

l'avis parce que variable nouveauSet (nouveauSet $) aucun dans votre point de vue de la fonction publique dans NewsSetsController,

vous passez variable pour voir regarder ceci,

$ this-> set ('nouvelles', les nouvelles $);

devrait,

$ this-> set ('newsSet', nouvelles de $);