コンポーネントの問題は、カスタムAppControllerクラスの拡張に問題が発生します

StackOverflow https://stackoverflow.com//questions/22020462

  •  21-12-2019
  •  | 
  •  

質問

私はこのような私のCakePHPアプリにカスタム構造を持っています:

class AppController extends Controller // default

class ExtendedAppController extends AppController

class ChildController extends ExtendedAppController
.

childcontroller クラスのコンポーネントを宣言すると、 ExtendedAppController に宣言するコンポーネントが消去されます。私はヘルパーについてもこの同じ問題を抱えていると思います。これを避けるために配列をマージするにはどうすればよいですか?

役に立ちましたか?

解決

ケーキは、コア$_mergeParent = 'AppController';クラスの変数Controllerに設定されている 1 親クラスだけで現在のコントローラの変数をマージします。

この変数を定義することで、この変数をChildControllerで上書きすることができます。

class ChildController extends ExtendedAppController {

    protected $_mergeParent = 'ExtendedAppController';

}
.

しかし、これはAppControllerで定義されているすべてのヘルパーとコンポーネントを無視しているので、コンポーネントとヘルパーをAppControllerからExtendedAppControllerにコピーします。これはあなたの質問に答えるべきです私はあなたがあなたのChildControllerからExtendedAppControllerのコンポーネントを使用できるようになると思います。

Controller :: _MergeControlLervars()メソッドがコアに書き込まれる方法です。これは正確に:< / P>

HTMLHelper、FormHelper、およびSessionHelperは、 Default、SessionComponentのようにデフォルトです。 しかしあなたがあなたを定義することを選択した場合 AppControllerの$ Helpers Arrayを使用して、必ずHTMLHelperを含めてください。 あなたがあなたのデフォルトでまだ利用できるようにしたい場合 コントローラ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top