2016-07-31 81 views
1

谁能告诉我什么是管理员后端创建CRUD的官方方式?如何使用CakePHP 3烘焙admin(前缀)代码?

在CakePHP 2中,烘焙代码在函数名称和视图文件之前使用'admin_'扩展。 在CakePHP中,似乎我找不到任何关于它如何完成的直接信息。烘焙控制台不再要求管理员。 在本主题中:https://github.com/cakephp/bake/issues/28我看到他们提到使用--prefix扩展名,但控制器放在单独的/ Admin文件夹中,而CRUD功能保持其正常名称。在食谱的一些部分()我仍然看到他们提到像admin_view这样的函数。

那么任何人都可以告诉我什么是官方'蛋糕'的方式来做到这一点从3.2?

+0

在食谱的一些部分:http://book.cakephp.org/3.0/en/vie ws.html#layouts – Lucky

回答

0

这就是CakePHP 3现在的工作方式,前缀方法消失了,前缀现在在子命名空间中生成单独的控制器,为更小/更简单的控制器,以及适当的分离,不仅在控制器级别,而且在模板上级别,其中模板预计将相应放置在单独的文件夹中。

您所指的admin_view示例只是一个应该显示如何手动设置特定操作的自定义布局的示例,它与前缀路由无关。

所以,如果你想使用前缀路由,那么“官方”的方式是使用--prefix选项。

+0

谢谢。我明白。不过,我用于管理员的烘焙模板有问题。我在src/Template/Bake/Controller/Admin/controller.ctp中放置了一个控制器烘焙文件,但使用--prefix admin烘焙控制器不会使用该文件。你能告诉我我做错了什么吗? – Lucky

+0

任何人都可以告诉我在哪里/如何保存新的烘烤模板的前缀路由?当我使用--prefix Admin来烘烤控制器时,它会从Template/Bake/Controller/controller.php文件中创建Controller/Admin/controller.php文件,而不是从Template/Bake/Controller/Admin/controller.php文件中创建。但我想要在主控制器和管理员/控制器中生成不同的代码。 – Lucky

+0

@Lucky请提出一个新问题。 – ndm

3

如果你想使用的蛋糕烘焙创建控制器见。你可以用下面的命令做到:

bin/cake bake controller --prefix admin users 

对于视图:

bin/cake bake template --prefix admin users 

它创建模板目录中的管理文件夹,然后为用户创建的文件夹,然后将其包含的文件。对于像template/admin/users/index.ctp

See official cookbook documentation

而且在你的config /路由前缀管理文件夹结构。PHP补充一点:

Router::prefix('admin', function ($routes) { 
    $routes->connect('/', ['controller' => 'Users', 'action' => 'index']); 
    $routes->extensions(['json', 'xml']); 
    // All routes here will be prefixed with `/admin` 
    // And have the prefix => admin route element added. 
    $routes->fallbacks('DashedRoute'); 
}); 
0

下面是烘命令烤用户表

cake bake all users --prefix admin 

而这里所有的前缀控制器和模板是路由代码,使其工作: -

Router::prefix('admin', function ($routes) { 
     // Because you are in the admin scope, 
     // you do not need to include the /admin prefix 
     // or the admin route element. 
     $routes->connect('/', ['controller' => 'Users', 'action' => 'index']); 
     $routes->extensions(['json', 'xml']); 
     // All routes here will be prefixed with `/admin` 
    //$routes->connect('/admin', ['controller' => 'Order', 'action' => 'index']); // call other controller like this 
     // And have the prefix => admin route element added. 
     $routes->fallbacks('DashedRoute'); 
    }); 

这对我很有用希望它对你有用:)

相关问题