Я новичок в CakePHP, и в настоящее время я пытаюсь получить все строки в таблице «жанры» и «темы», чтобы заполнить несколько флажков, но когда я пытаюсь использовать foreach, я всегда получить ошибки ниже:CakePHP Foreach не работает
Примечание (8): Не определено переменные: жанры [APP/View/Pages/register.ctp, строка 88]
Предупреждение (2): Недействительный аргумент для Еогеаспа() [APP/View/Pages/register.ctp, строка 88]
Уведомление (8): Неопределенная переменная: темы [APP/View/Pages/register.ctp, строка 98]
Предупреждение (2): Недействительный аргумент для Еогеаспа() [APP/View/Pages/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() '. Загрузите модель там тоже. 'remove index()' кода от обоих контроллеров и создать 'register()' в любом контроллере. –