Как написать эти строки кода в cakephp 3.x
Я очень новичок в CakePHP, и мне нужно обновить проект Cake с версии 1.1 до 3.6. Я не знаю, как преобразовать эти строки кода в CakePHP 3.6:
App::import('Model', 'SystemMenu');
$system_menu =& new SystemMenu();
SystemMenu - это модель, которая была определена в папке Model.
Большое спасибо за Вашу помощь.
2 ответа
Если вы находитесь в контроллере, вы можете сделать
$this->loadModel('SystemMenus');
и получить доступ к модели, как так
$this->SystemMenus->find()->...
Если нет, вы можете использовать TableRegistry
$systemMenus = TableRegistry::get('SystemMenus')
И доступ прост:
$systemMenus->find()->...
См. https://book.cakephp.org/3.0/en/orm/table-objects.html для получения дополнительной информации.
Обратите внимание, что я изменил имя таблицы на множественное, так как в соглашениях CakePHP 3.x указано https://book.cakephp.org/3.0/en/intro/conventions.html
Ты можешь использовать TableRegistry
учебный класс.
$system_menu = \Cake\ORM\TableRegistry::get('SystemMenu');
//new entity
$entity = $system_menu->newEntity();
//get entity by id
$entity = $system_menu->get(2);
//Save entity
$system_menu->save($e);
// finder
$menu = $system_menu->find()->toArray();