PHP / Kohana访问视图中基本控制器中定义的变量

时间:2014-06-24 17:30:51

标签: php kohana kohana-3.3

我在类

中定义了一个变量
  

Controller_Application扩展了Controller_Template

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

  

public $ Form_Errors = array();

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?

由于

1 个答案:

答案 0 :(得分:0)

我需要在bind_global()中提供$ this-&gt; Form_Errors,这就行了。