在cakephp中访问带前缀的操作

时间:2012-02-28 15:17:33

标签: cakephp cakephp-1.3

我还是蛋糕上的蛋糕。我想访问带有前缀的动作,但我被重定向到我当前的视图。我怎样才能做到这一点?例如:

我的功能如下:

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))?>”,     ... });

谢谢!

2 个答案:

答案 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", ... });