如何使用CakePHP 3烘焙admin(带前缀)代码?

时间:2016-07-31 08:58:04

标签: cakephp admin crud cakephp-3.x cakephp-bake

有谁能告诉我为管理员后端创建CRUD的官方方法是什么?

在CakePHP 2中,烘焙代码扩展为' admin _'在函数名称和视图文件之前。 在CakePHP中,我似乎无法找到有关它如何完成的任何直接信息。烘焙控制台不再需要管理员了。 在本主题中:https://github.com/cakephp/bake/issues/28我看到他们提到使用--prefix扩展名,但是当CRUD函数保持其正常名称时,控制器被放在一个单独的/ Admin文件夹中。在cookbook()的某些部分,我仍然看到他们提到了admin_view等功能。

所以任何人都可以告诉我官方' Cake'从3.2开始这样做了吗?

3 个答案:

答案 0 :(得分:5)

如果您想使用蛋糕烘焙创建Controller。您可以使用以下命令执行此操作:

bin/cake bake controller --prefix admin users

观点:

bin/cake bake template --prefix admin users
  

它在模板目录中创建admin文件夹,然后为用户创建文件夹,然后包含文件。对于管理员前缀文件夹结构,如template/admin/users/index.ctp

See official cookbook documentation

同样在你的config / routes.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');
});

答案 1 :(得分:1)

现在CakePHP 3中的工作原理如何,前缀方法已经消失,前缀现在会在子命名空间中生成单独的控制器,对于更小/更简单的控制器,以及正确分离,不仅在控制器级别,而且同样在模板级别,模板应该相应地放在不同的文件夹中。

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

所以,如果你想使用前缀路由,那么"官方"方法是使用admin_view选项。

另见

答案 2 :(得分:1)

下面是bake命令,用于烘焙用户表的所有前缀控制器和模板

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');
    }); 

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