2

シェルクラスのプラグインコンポーネントを利用したいと思います。私は使用しようとしています:

App::import('Component', 'Myplugin.Mycomponent');
$this->Mycomponent =& new MycomponentComponent();

残念ながら、上記は失敗したようです。

また、Componentクラスが見つからなかったというエラーメッセージが表示されます。

私がこれにどのように取り組むべきかについての提案はありますか?

ありがとう

4

2 に答える 2

4

常に最初にテストケースを確認する必要があります。このようにして、それらが手動で次のように含まれていることがわかります。

App::uses('ComponentCollection', 'Controller');
App::uses('AppleComponent', 'Myplugin.Controller/Component');

$Collection = new ComponentCollection();
$Apple = new AppleComponent($Collection);

補足:コントローラー以外の場所でコンポーネントを使用する必要がある場合は、間違っています。機能をモデルまたはライブラリに抽出し、コンポーネントとシェルの両方から呼び出す必要があります

于 2012-06-04T11:58:24.127 に答える
0

私はこれが非常に古いことを知っていますが、レガシーのCakePHP2アプリケーションで作業しているときにこれに遭遇しました。

コントローラ内:

public $components = array(
    'Myplugin.Mycomponent',
);

その後、次の方法でコンポーネントにアクセスできます。

$this->Mycomponent->mymethod();

ソース

于 2021-04-15T19:32:56.217 に答える