CakePHP创建新页面

时间:2016-02-02 08:41:48

标签: php cakephp view controller

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

  

应用程序/控制器/ productsimport_controller.php

包含:

<?php
class ProductsimportController extends AppController
{       
    function admin_index()
    {

    }

    function isAuthorized()
    {
        return true;
    }
}

  

应用程序/视图/ productsimport / admin_index.ctp

包含:

<h2>Hello!</h2>

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

我可能忘记添加一些东西以使其有效吗?

2 个答案:

答案 0 :(得分:0)

您到控制器方法的默认路线为/productsimport/*,因此要访问您想要的网页,网址为/productsimport/admin_index

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

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

答案 1 :(得分:0)

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

如果您希望控制器中以admin_为前缀的所有操作都拥有route prefix 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路线意味着这是不必要的。