4

で作成されたコントローラーを使用するにはどうすればよいですか

/administrator/components/com_mycom/controllers/*

/components/com_mycom/mycom.php

詳細に:

»add«メソッドを備えた»log«コントローラーがあり、これをフロントエンドから使用したいと思います。バックエンドにログインしていない場合、タスクは実行されず、500エラーが発生します。したがって、フロントエンドにバックエンドコントローラーパスを含めて、JController::getInstance( 'Mycom' )それでも機能するようにします。

ご挨拶…</p>

編集:

長い間検索した後、多かれ少なかれ文書化されていない: JController::getInstance()メソッドのパラメータ、つまり2番目のパラメータを見つけることができました$config = array()。ソースコードを調べてみると、関心のある»config-array«のキーが1つあることがわかりました。それは、»base_path«です。

の呼び出し:

JController:getInstance( 'Mycom, array('base_path' =>JPATH_ADMINISTRATOR.DS.'components'.DS.'com_mycom')' );

常にバックエンドコントローラーを提供し、フロントエンドで安全に使用できますが、コンポーネントのバックエンド側からもビューが取得されるように注意する必要があります。私の場合、これを使用してajax呼び出しを行うだけなので問題ありませんが、「バックエンドコントローラー」を使用して「フロントエンドビュー」を作成する場合は、この方法の使用に注意する必要があります。

ご挨拶…</p>

4

1 に答える 1

1

私は最近、フロントエンドでもバックエンドから CRUD システム全体を使用したいという同様の問題を抱えていました。

これは私のために働いた方法です(これが推奨またはベストプラクティスであると言っているわけではありません):

バックエンドからフォルダー/ファイル構造をモデル化しました。PHP ファイルには次のようなものが含まれていました。

require_once JPATH_ADMINISTRATOR . '/components/com_mycom/controllers/log.php';

于 2012-11-19T08:34:42.917 に答える