2010-12-15 98 views

回答

0

我找到了一個解決方案,它不是很漂亮,但爲我工作。我只使用$ _REQUEST ['url']並通過url捕獲控制器名稱。這個解決方案的缺點是,如果你的默認路由不同,這個解決方案將無法工作......任何人都有更好的方法?

+0

取決於你試圖完成的任務,你可以編寫一個組件 – dhofstet 2010-12-16 14:37:24

0

PHP的Magic Constants之一是__CLASS__,它將返回它所在對象的類名。這可能會讓你得到你所需要的。

http://php.net/manual/en/language.constants.predefined.php

魔術常量和方法的樂趣。

+0

我很好奇爲什麼有人低估了這個?這是一個解決方案的開始,看起來可以工作(即使它不是最理想的)。如果你失望,請留下評論。 – 2010-12-15 19:09:19

+0

我希望我也知道。蛋糕中可能有某種方式。我不使用蛋糕,所以我不知道。也許Cake不使用控制器的類?誰知道。 – DampeS8N 2010-12-15 19:29:40

+1

我沒有downvote這個答案,但這不只是返回行爲的名稱? – dhofstet 2010-12-16 10:26:06

3

試試這個。如果你只需要控制器的名字。

Inflector::pluralize($this->name); 
+4

Downvoted,因爲您不能從模型名稱派生控制器的名稱,因爲可以從不同的控制器使用模型。 – dhofstet 2010-12-16 06:03:12

+0

@dhofestet:thankz糾正。我沒有想到這種情況。 :( – RSK 2010-12-16 16:46:59

5

我知道這個問題是很老,但這裏的妥善解決辦法是:

$this->params['controller']

欲瞭解更多有關的 'PARAMS' 屬性:
http://book.cakephp.org/view/963/The-Parameters-Attribute-params

+1

$ this-> params在Model – rizidoro 2012-02-15 13:49:17

+2

裏面是不可訪問的@rizidoro模型應該沒有任何其他MVC方面的意識,比其自身更好。將獲取控制器中的控制器名稱並將其作爲參數傳遞給模型。 – TheBigB 2012-03-03 15:10:34

2
$GLOBALS['Dispatcher']->params['controller'] 

給你的控制器名稱

相關問題