0

我在类中定义了一个变量

Controller_Application 扩展 Controller_Template

我在 Controller_Application 类中定义了一个变量 $Form_Errors 如下

公共 $Form_Errors = 数组();

public function before() {
    parent::before();
    View::set_global('site_name', 'SiteName');
    View::bind_global('Form_Errors', $Form_Errors); }

$Form_Errors 由一个名为 的方法设置,该方法ManageErrors也在内部定义Controller_Application。每次发生异常或某些错误时,所有其他控制器都会调用 ManageErrors。

    public function ManageError($ErrorCode, $extraerrors=null) {
 if ($ErrorCode == Controller_Application::MsgEmailExists)
            array_push($this->Form_Errors, "Email provided is already in use.");


}

我试图在视图中访问这个 $Form_Errors,以显示它包含的错误消息。但是,当我尝试打印它的值时,它总是打印为 NULL。

ManageError 访问如下

public function action_index() {
        $this->template->content = View::factory('vsignin')->render();
        $this->ManageError(Controller_Application::MsgEmailExists);
}

在 vsignin.php

<?php if ($Form_Errors): ?>
<p class="message">Some errors were encountered, please check the details you entered.</p>
<ul class="errors">
<?php foreach ($Form_Errors as $message): ?>
    <li><?php echo $message ?></li>
<?php endforeach ?>
<?php endif ?>

有人可以帮我弄清楚为什么 $Form_Errors 总是打印 NULL 吗?

谢谢

4

1 回答 1

0

我需要在 bind_global() 中提供 $this->Form_Errors,这样就成功了。

于 2014-06-25T04:37:26.677 回答