如何在cakephp 3.x中编写这些代码行

时间:2018-09-17 14:19:47

标签: cakephp cakephp-3.6

我在cakephp中非常陌生,我必须将一个Cake项目从版本1.1升级到3.6。我不知道如何将这些代码行转换为cakephp 3.6:

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

SystemMenu是在“模型”文件夹中定义的模型。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

如果您在控制器内,则可以

$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

答案 1 :(得分:0)

You can use TableRegistry class.

$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();