0

関連コード:

JToolBarHelper::custom('saveCategories', 'save', '', 'Save', false, false);
...
<input type="hidden" name="controller" value="EasyBlogController">

ドキュメントと私自身の以前の質問から掘り下げることができるものによると、これは のsaveCategories()関数を呼び出す必要がありEasyBlogControllerます。easyblog値を, easyblog.php(ファイル名) と現在のEasyBlogController(クラス名)に設定しようとしました。

[保存] ボタンをクリックすると、ページが更新されるだけです。リダイレクトechovar_dump、関数に追加したテスト コードもありませんsaveCategories()var_dumpingJRequest::getVar('controller')'task'do は正しい値を返します。コントローラーオブジェクトを作成してから使用し$controller->execute('task');ます。

4

2 に答える 2

2

目的の値は、呼び出しようとしているコントローラーの場所によって明らかに異なります。ここにはいくつかのオプションがあります。通常、controller.php という名前のファイルにあるコンポーネントのベース フォルダー (おそらく components/com_easyblog) にコントローラーがあり、その中のクラス名は EasyBlogController になります。

特定のビューのコントローラーを含むコントローラー フォルダー (components/com_easyblog/controllers) がある場合もあります。通常、この場合、「something.php」という名前のファイルがあり、クラスは「EasyBlogControllerSomething」になります。このオプションでは、次を使用して、このコントローラーの saveCategories 関数を呼び出します。

JToolBarHelper::custom('Something.saveCategories', 'save', '', 'Save', false, false);

それ以外の場合は、基本コントローラーのみが必要な場合は、コントローラーを指定しないでください。システムはデフォルトで controller.php ファイルを使用するためです。次のような:

JToolBarHelper::custom('saveCategories', 'save', '', 'Save', false, false); //no hidden input after this

デフォルト以外のコントローラーを設定する場合は、次の html をビューに追加します。

<input type="hidden" name="controller" value="controllerNameHere"/>
于 2012-06-07T02:59:30.087 に答える
-1

試す:

JToolBarHelper::custom('EasyBlogController.saveCategories', 'save', '', 'Save', false, false);

ただし、コントローラーの名前がEasyBlogController.phpであり、saveCategories()という関数があることを確認してください。

于 2012-06-05T14:06:00.053 に答える