Как написать эти строки кода в 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();
Другие вопросы по тегам