我想在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
路由添加前缀意味着这是不必要的。