【问题标题】:Accessing actions with prefixes in cakephp在 cakephp 中使用前缀访问操作
【发布时间】:2012-02-28 15:17:33
【问题描述】:

我仍然是 cakephp 的菜鸟。我想访问一个带有前缀的操作,但我被重定向到我当前的视图。我怎样才能做到这一点?示例:

我有如下功能:

函数 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))?>", ... });

谢谢!

【问题讨论】:

  • 您是如何尝试访问此操作的?显示一些代码。
  • 嗨,保罗!我编辑了一些细节。请检查一下。谢谢。

标签: cakephp cakephp-1.3


【解决方案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 参数即可。

【讨论】:

  • 这会将我重定向到我当前的位置。无论如何,我使用 $this->Auth->allow() 找到了一些答案,但是有没有比使用它更好的解决方案以便我可以访问控制器中的前缀操作?
【解决方案2】:

我认为您在谈论路由。例如,如果您想为管理员定义操作,例如:

admin_index
admin_edit
admin_view

让他们访问

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

【讨论】:

  • 嗨夹头。感谢您的答复。请再次检查详细信息,我编辑了一些部分。谢谢
  • 实际上我使用 jquery.ajax 的 url 所以在我的 jQuery.ajax 中有一个 url:"Html->url(array("action"=>" getID", "admin"=>true))?>"
  • 如果您将所有详细信息都包含在帖子中而不是一次一篇,那会更有帮助。在您提供有关您正在寻找的内容的更多信息之前,我们无能为力提供帮助。
  • 抱歉,我没有包含 jquery 详细信息,因为我认为您(cakephp 程序员)没有必要了解更多信息。
猜你喜欢
  • 2015-08-14
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-12-08
  • 2023-03-21
  • 2015-01-28
  • 1970-01-01
相关资源
最近更新 更多