2010-12-15 17 views

答えて

0

私は解決策を見つけました。私は$ _REQUEST ['url']を使い、URLでコントローラ名をキャッチします。このソリューションの欠点は、既定で異なるルートを使用している場合、このソリューションは機能しません...誰かがより良いアプローチをしていることでしょうか?

+0

あなたが達成しようとしているものによって、コンポーネントを書くことができます – dhofstet

0

PHPのマジック定数の1つは、__CLASS__です。これは、オブジェクト内のオブジェクトのクラス名を返します。これはあなたが必要とするものを得るかもしれません。

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

マジック定数とメソッド楽しいです。

+0

なぜ誰かがこれを落としたのか不思議です。それは、たとえ最適ではないとしても、うまくいくようなソリューションの始まりです。あなたがdownvote場合はコメントを残してください。 –

+0

私も知りたかったです。おそらくケーキには何らかの方法があります。私はケーキを使用しないので、私は知らない。たぶんCakeはコントローラ用のクラスを使用しないでしょうか?知るか。 – DampeS8N

+1

私はこの答えをdownvoteしませんでしたが、これは動作の名前を返すだけではありませんか? – dhofstet

3

これを試してください。あなたはコントローラの名前だけが必要な場合。

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

モデルとしてコントローラ名をモデル名から派生させることができないため、異なるコントローラからモデルを使用することができます。 – dhofstet

+0

@dhofestet:ありがとうございました。私はその事を考えていませんでした。 : – RSK

5

私はこの質問はかなり古いですけど、ここで適切な解決策は次のようになります。
http://book.cakephp.org/view/963/The-Parameters-Attribute-params

+1

$ this-> paramsはモデル内でアクセスできません – rizidoro

+2

@rizidoroこのモデルは、他のMVCアスペクトを意識してはいけません。コントローラー内のコントローラー名を取得し、それを引き数としてモデルに渡します。 – TheBigB

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

ます: 'のparams' 属性の詳細については

$this->params['controller']

あなたにコントローラーの名前を教えてください

関連する問題