【问题标题】:Controller/JToolBar not working in Joomla 2.5控制器/JToolBar 在 Joomla 2.5 中不起作用
【发布时间】:2012-06-04 21:49:11
【问题描述】:

相关代码:

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

根据我可以从docs 和我自己的previous questions, 中挖掘出来的内容,这应该调用EasyBlogController 中的saveCategories() 函数。我尝试将值设置为easyblogeasyblog.php(文件名)以及当前的EasyBlogController(类名)。

点击保存按钮只会刷新页面。它不会重定向echovar_dump 我在saveCategories() 函数中输入的任何测试代码。 var_dumping JRequest::getVar('controller')'task' 确实返回正确的值。创建一个控制器对象,然后使用$controller-&gt;execute('task'); 工作。

【问题讨论】:

    标签: php model-view-controller joomla joomla2.5


    【解决方案1】:

    您要使用的值显然取决于您尝试调用的控制器的位置,这里有几个选项。通常,组件的基本文件夹(可能是 components/com_easyblog)中有一个控制器,该控制器位于一个名为 controller.php 的文件中,其中的类名是 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"/>
    

    【讨论】:

    • 我昨天想通了,但是谢谢!这真的很有帮助,我添加了一些关于设置自定义控制器的内容。
    【解决方案2】:

    试试:

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

    但请确保您的控制器名为 EasyBlogController.php 并且有一个名为 saveCategories() 的函数

    【讨论】:

    • 不幸的是,这完全是错误的。它将任务设置为“EasyBlogControllersaveCategories”
    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2014-07-10
    • 2015-11-10
    • 2012-05-11
    • 2016-05-08
    相关资源
    最近更新 更多