我是CakePHP的新手,我目前試圖讓我的表「流派」和「主題」中的所有行填充一些複選框,但是當我嘗試使用foreach時,我總是得到下面的錯誤:CakePHP Foreach不起作用
通知(8):未定義變量:流派[APP /視圖/頁/ register.ctp,線88]
警告(2):提供的foreach無效的參數() (APP/View/Pages/register.ctp,line 88)
警告(2):對的foreach()提供參數無效[APP /視圖/頁/ register.ctp,線98]
但是我設置 '流派',在我的GenresController '主題' 和ThemesController,但我不斷收到此錯誤。這裏是我的代碼:
register.ctp
<div id='stream'>
<?php
foreach ($genres as $genre):
echo $this->Form->checkbox('Genre.0.libelle', array(
'value' => $genre['Genre']['id'],
'name' => $genre['Genre']['libelle']
));
endforeach;
?>
</div>
<div id='webserie'>
<?php
foreach ($themes as $theme):
echo $this->Form->checkbox('Theme.0.libelle', array(
'value' => $theme['Theme']['id'],
'name' => $theme['Theme']['libelle']
));
endforeach;
?>
</div>
GenresController:
App::uses('AppController', 'Controller');
/**
* CakePHP GenresController
* @author Sen
*/
class GenresController extends AppController {
public function index() {
$this->set('genres', $this->Genre->find('all'));
}
}
ThemesController:
App::uses('AppController', 'Controller');
/**
* CakePHP ThemesController
* @author Sen
*/
class ThemesController extends AppController {
public function index($id) {
$this->set('themes', $this->Theme->find('all'));
}
}
我試着陣列設置爲$風格就是這樣,但它說,我GenresController的指數沒有定義:
$genres = array();
$genres[0]['libelle'] = "Lamb";
$genres[1]['libelle'] = "Ham";
預先感謝您的幫助。
您已經定義了'index'行動兩個控制器。但在'register,ctp'中使用這些變量。你應該把它們全部放在你正在呼叫的控制器的'register'中。 –
你需要添加'$ this-> set('genres',$ this-> Genre-> find('all')); $ this-> set('themes',$ this-> Theme-> find('all'));'在你的AppController'beforefilter()'函數中。在那裏加載模型。 '從兩個控制器中刪除index()'代碼並在任何控制器中創建一個'register()'。 –