Concrete5 - 类方法不起作用

时间:2015-03-30 22:49:04

标签: php forms class concrete5

我正在尝试在Concrete5中为我的客户创建自定义仪表板应用程序。我无法在控制器类中获取方法以使页面起作用。

您可以在官方concrete5论坛上查看我的帖子,以获得完整深入的解释:https://www.concrete5.org/community/forums/customizing_c5/call-to-controller-method-throwing-404-page-not-found-error/

这是我生成表格

的仪表板页面的view.php文件
<?php  defined('C5_EXECUTE') or die(_("Access Denied."));

$dh = Loader::helper('concrete/dashboard');
$ih = Loader::helper('concrete/interface');

$uNamePosted = "Pants";

$help = 'This add-on works in conjuction with my XML Export add-on ';
$help .= 'this is a new dashboard page which allows you to open these';
$help .= 'XML files, edit and then save them, so that you can then';
$help .= 'import them using Core Commerce Import.';

echo $dh->getDashboardPaneHeaderWrapper(t('XML Viewer'), t($help), 'span8', false);

?>
<div class="ccm-pane-body">
    <?php echo $uNamePosted; ?>
   <form method="post" 
    action="<?php echo $this->action('test_form'); ?>">
    <input type="text" name="uName" value="" /> 
    <input type="submit" value="Search" />
    </form>
</div>
<?php  echo $dh->getDashboardPaneFooterWrapper(false); ?>

这是我的控制台页面的controller.php文件的内容

<?php  defined('C5_EXECUTE') or die(_("Access Denied."));



    class DashboardCoreCommerceXmlViewerController extends Controller {
      public function test_form() {
        $uName = $this->post('uName');
        $this->set('uNamePosted', $uName);
        }
    }

预期的功能:我在框中输入内容并推送搜索,&#39;裤子的虚拟值&#39;改为我输入的内容

发生了什么:没什么,当我点击搜索按钮时页面重新加载并且没有信息被更改。

我正在关注位于此处的C5工作人员的教程:http://andrewembler.com/posts/basic-mvc-in-concrete5/

据我所知,这应该有效,但是当我点击搜索时没有任何反应。我已经验证了正在访问类中的函数,因为打印(&#34; sometext&#34;);在函数顶部创建以下错误:无法修改标题信息 - 已在 public_html中发送的标题(在public_html / site / packages / xml_viewer / controllers / dashboard / core_commerce / xml_viewer / controller.php:6中开始输出) /site/concrete/core/libraries/view.php 在线 963

这是预期的,因为它已经发送了标题之后的打印,但它确实证明了concrete5 / .PHP正在找到该函数,但该行没有任何反应

$this->set('uNamePosted', $uName);

感谢任何帮助,提前谢谢。甚至他们自己的工作人员的教程也说这应该有效。

1 个答案:

答案 0 :(得分:0)

在Conrete5论坛上回答。

我有一个大脑放屁并将变量设置为view.php内的'pants'而不是在controller.php内

卫生署!