Как написать эти строки кода в cakephp 3.x - PullRequest
0 голосов
/ 17 сентября 2018

Я очень новичок в CakePHP, и мне нужно обновить проект Cake с версии 1.1 до 3.6.Я не знаю, как преобразовать эти строки кода в cakephp 3.6:

    App::import('Model', 'SystemMenu');
    $system_menu =& new SystemMenu();

SystemMenu - это модель, которая была определена в папке Model.

Большое спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вы можете использовать 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();
0 голосов
/ 18 сентября 2018

Если вы находитесь в контроллере, вы можете сделать

$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

...