2012-02-28 60 views
0

即使仍然noob與cakephp。我想要訪問帶有前綴的操作,但是我正在重定向到當前視圖。我怎樣才能做到這一點?例如:在cakephp中使用前綴訪問動作

IHAVE功能象下面這樣:

功能admin_getID(){ 這裏 一些代碼... }

我的鏈接

。我訪問它使用這個網站助手:

$這個 - > HTML的「URL(陣列( '行動'=> '的getID', '管理'=>真))

注意,目前我沒有任何前綴,我想用前綴訪問操作。

的URL將在jQuery.ajax的URL被用於所以在jquery的,

jQuery.ajax({ ... URL: 「HTML-> URL(陣列(」 動作 「=>」 的getID 「,」admin「=> true))?>」, ... });

謝謝!

+1

您是如何嘗試訪問此操作的?顯示一些代碼。 – 2012-02-28 16:05:08

+0

hi paulo!我編輯了一些細節。請檢查它。謝謝。 – unknown 2012-02-29 04:33:39

回答

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的,你不能用蛋糕來生成URL,你將不得不做手工:

jQuery.ajax({ ... url:"/admin/CONTROLLER/getID", ... }); 
+0

嗨查克。感謝您的答覆。再次檢查細節,我編輯了一些部分。謝謝 – unknown 2012-02-29 04:33:01

+0

實際上即時通訊使用的URL爲jquery.ajax,所以在我的jQuery.ajax我有一個網址:「<?php echo $ this-> Html-> url(array(」action「=>」getID「,」admin「 => true))?>「 – unknown 2012-02-29 05:13:15

+0

如果您在帖子中包含所有細節而不是一次一個,它會更有幫助。除非您提供更多關於您所尋找的信息,否則我們無能爲力。 – 2012-02-29 05:32:44

1

自文件core.php中您正在使用相同的前綴,例如:

Configure::write('Routing.prefixes', array('admin')); 

您應該使用:

echo $this->Html->link('link', array('action' => 'getID', 'admin' => true)); 

這將生成鏈接/admin/{your_controller}/getID

對於同一個控制器,但是如果要顯示給另一個控制器,則必須在數組中包含controller參數。

如果你不使用的指令Routing.prefixes正如我上面所說,只需添加在行動價值admin_getID參數。

+0

這會將我重定向到我目前的位置。無論如何,我發現一些答案使用$ this-> Auth-> allow(),但有沒有比使用這個更好的解決方案,這樣我可以訪問我的控制器中的前綴操作? – unknown 2012-02-29 15:47:39