我还是蛋糕上的蛋糕。我想访问带有前缀的动作,但我被重定向到我当前的视图。我怎样才能做到这一点?例如:
我的功能如下:
function admin_getID() { 这里有些代码...... }
在我的链接中。我使用这个html帮助器访问它:
$ this-> Html-> url(array('action'=>'getID','admin'=> true))
请注意,目前我没有任何前缀,我想访问带有前缀的操作。
url将在jQuery.ajax的URL中使用,所以在jquery中,
jQuery.ajax({ ... url:“Html-> url(array(”action“=>”getID“,”admin“=> true))?>”, ... });
谢谢!
答案 0 :(得分:1)
由于您的文件 core.php ,您使用相同的前缀,例如:
Configure::write('Routing.prefixes', array('admin'));
您应该使用:
echo $this->Html->link('link', array('action' => 'getID', 'admin' => true));
这将生成链接/admin/{your_controller}/getID
。
对于同一个Controller,但如果要显示到另一个控制器,则必须在数组中包含controller
参数。
如果你没有像我上面所说的那样使用指令Routing.prefixes
,只需在行动价值中添加admin_getID
参数。
答案 1 :(得分:0)
我认为你在谈论路由。例如,如果您要为管理员定义操作,请执行以下操作:
admin_index
admin_edit
admin_view
adn可以通过
访问它们example.com/admin/index
example.com/admin/edit
example.com/admin/view
这在CakePHP中称为路由。你可以在这里看到这是如何完成的:
http://book.cakephp.org/1.3/en/view/948/Defining-Routes
<强>更新强>
你可以这样做:
<?php echo $this->Html->link('link', array('controller' => '{CONTROLLER_NAME}', 'action' => 'getID', 'admin' => 'true')); ?>
更新2
您没有回复您的网址。你需要这样做:
jQuery.ajax({ ... url:"<?php echo $this->Html->url(array("action"=>"getID", "admin"=>true)); ?>", ... });
如果你没有使用PHP来渲染你的jQuery,你不能使用cake来生成你的URL,你必须手动完成:
jQuery.ajax({ ... url:"/admin/CONTROLLER/getID", ... });