我正在使用混凝土来渲染我的网站,它使用以下错误系统;
if (isset($error) && $error != '') {
if ($error instanceof Exception) {
$_error[] = $error->getMessage();
} else if ($error instanceof ValidationErrorHelper) {
$_error = $error->getList();
} else if (is_array($error)) {
$_error = $error;
} else if (is_string($error)) {
$_error[] = $error;
}
?>
<?php if ($format == 'block') { ?>
<div class="alert-message error">
<?php foreach($_error as $e): ?>
<?php echo $e?><br/>
<?php endforeach; ?>
</div>
<?php } else { ?>
<ul class="ccm-error">
<?php foreach($_error as $e): ?>
<li><?php echo $e?></li>
<?php endforeach; ?>
</ul>
<?php } ?>
<?php } ?>
这用于检测系统中的错误或验证错误。
我的问题是正在显示错误 div 但没有错误,例如:
我已经尝试转储变量,这是结果(在这种情况下):
Array object(ValidationErrorHelper)#89 (1) { ["error:protected"]=> array(0) { } }
这是 ValidationErrorHelper 系统:
<?php
defined('C5_EXECUTE') or die("Access Denied.");
class ValidationErrorHelper {
protected $error = array();
public function reset() {
$this->error = array();
}
public function add($e) {
if ($e instanceof ValidationErrorHelper) {
$this->error = array_merge($e->getList(), $this->error);
} else if (is_object($e) && ($e instanceof Exception)) {
$this->error[] = $e->getMessage();
} else {
$this->error[] = $e;
}
}
public function getList() {
return $this->error;
}
public function has() {
return (count($this->error) > 0);
}
public function output() {
if ($this->has()) {
print '<ul class="ccm-error">';
foreach($this->getList() as $error) {
print '<li>' . $error . '</li>';
}
print '</ul>';
}
}
}
?>
有什么办法可以去掉这个吗?或诊断它?