0

これは簡単なはずですが、私はそれを理解するのに1時間以上費やしたので、あなたの助けに感謝します.

Usermgmtここにあるコントローラーを備えた CakePHP プラグインがあります。

./app/Plugin/Usermgmt/Controller/UsersController.php

userIdFromUsernameAndPassword()次のようなものを使用して、メインコントローラーの1つからそのコントローラーで関数を呼び出そうとしています:

$userID = $this->UsersController->userIdFromUsernameAndPassword( 'user@host.com','pass' );

これを機能させるには、何をインポート/インクルード/初期化する必要がありますか?

ファイルの先頭など、さまざまなインポートステートメントを試しましApp::uses('UsersController', 'Usermgmt.Controller');たが、どこにも行きませんでした。

ありがとう!

4

1 に答える 1

2

簡単な答え: OOP を使用し、他のコントローラーを拡張します。また、MVC についても理解してください。別のコントローラー内でコントローラーのメソッドを使用することは想定されていません。CakePHP では、これはコンポーネントとして行う必要があります。それらはコントローラ間で共有できます。CakePHP Book を確認してください

また、プラグインの名前とメソッド名は、これが悪いプラグインであることを示しています。これは、誰かが CakePHP の Auth コンポーネントについて知らなかったようです。もう一度、本で AuthComponent を確認してください。カスタム認証アダプタが必要です

ユーザーがログインしている場合、$this->Auth->user('id') を呼び出してその ID を取得できます。Auth に関する章を読んでください。適切に作成されたユーザープラグインが必要な場合は、チェックアウトしてください: CakeDC ユーザー

于 2013-04-20T01:32:48.693 に答える