蛋糕PHP创建新页面


CakePHP create new page

我想在CakePHP 2中创建新页面。我添加了两个文件:

应用/控制器/productsimport_controller.php

其中包含:

<?php
class ProductsimportController extends AppController
{       
    function admin_index()
    {
    }
    function isAuthorized()
    {
        return true;
    }
}

app/views/productsimport/admin_index.ctp

其中包含:

<h2>Hello!</h2>

但我总是看到的不是这个页面,而是我以前所在的上一页。例如,如果我在/admin/users,如果我去/admin/productsimport,我仍然会看到/admin/users/。或者有时404 page,但不是我想要的。

可能是我忘了添加一些东西来让它工作?

您到控制器方法的默认路由是 /productsimport/* ,因此要访问所需的页面,URL 是 /productsimport/admin_index

当您尝试输入/admin/productsimport时,Cake 所做的是检查AdminsController中的productsImport()方法,它不存在,因此它会呈现索引。

您可以在路由器中更改此行为

您的问题似乎是路由问题,听起来您没有为/admin/productsimport设置路由。

如果您希望控制器中所有以 admin_ 为前缀的操作都具有路由前缀admin则需要在 app/Config/core.php 中启用路由前缀:-

Configure::write('Routing.prefixes', array('admin'));

这将更改任何以 action_ 为前缀的控制器操作的路由,例如:admin_edit/admin/controller/edit

否则,您需要为要以这种方式访问的每个控制器操作设置路由。因此,对于您的特定示例,您需要app/Config/routes.php:-

Router::connect('/admin/productsimport/', 
    array('controller' => 'productsimport', 'action' => 'admin_index')
);

admin路由添加前缀意味着这是不必要的。