我试图为我的控制器帖子创建一个管理员,我使用蛋糕控制台选项创建控制器,我输入Y代表问题“需要管理员路由?”,我输入Y并且我编写了带有管理功能的控制器,我的一个管理功能看起来像这样
function admin/controller_view($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid post', true));
$this->redirect(array('action' => 'index'));
}
$this->set('post', $this->Post->read(null, $id));
}
但是当我执行时,我收到以下错误
解析错误:语法错误,意外 '/',期待'('in C:\ XAMPP \ htdocs中\蛋糕\博客\程序\控制器\ posts_controller.php 在第61行
我正在使用cakephp 1.3,我该怎么做才能为这个控制器创建一个管理面板?
很多人答案 0 :(得分:3)
斜杠/
不是函数名称中使用的有效字符,例如admin/controller
。这就是错误存在的原因。您应该删除斜杠并根据CakePHP的函数命名约定重命名该函数。
答案 1 :(得分:0)
你在core.php中设置了什么作为管理路由..似乎你有'admin /'它应该只是'admin'
答案 2 :(得分:0)
基于在蛋糕中创建管理路由,如果您尝试通过访问mysite.com/admin/posts来访问管理路由,那么该功能应该显示为admin_view(),而不是admin / controller_view() 。不幸的是,我不知道会导致这种情况,但是通过访问mysite.com/admin/posts/view,您可以通过更正来访问管理面板。如果这不起作用,你可以发布routes.php的内容吗?
答案 3 :(得分:0)
如果您要求/posts/view
蛋糕查找PostsController::view()
。
如果您已启用管理员路由(即“prefix routing”),并要求/admin/posts/view
,则蛋糕会查找PostsController::admin_view()
。
注意它在同一个控制器中 !
当然,您还需要一个额外的视图文件admin_view.ctp
。
起初可能有点混乱,但不要担心,你会到达那里! ;)
答案 4 :(得分:-1)
在config文件夹中的路由文件中,你可以使用类似这样的东西
Router::connect('/admin', array('controller' => 'admins', 'action' => 'index'));
你的管理员控制器应该是这样的
class AdminsController extends AppController
{
var $name = 'Admins';
var $components = array('Email','Session','RequestHandler','Cookie');
var $uses = array('Admins', 'Setting', 'Movie', 'User', 'Invitation', 'Purchase','Package');
function admin_index()
{
$this->layout = 'admin_default';
}
}
现在您可以打开管理员:mysite.com/admin/admins。
定义函数时不必使用“/”。希望这个帮助