我在类
中定义了一个变量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);
}
<?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?
由于
答案 0 :(得分:0)
我需要在bind_global()中提供$ this-&gt; Form_Errors,这就行了。