为什么这个循环不会渲染所有错误?

时间:2015-03-05 17:39:21

标签: php loops foreach

我有这个代码将循环验证并将验证错误存储在$error中,但我现在的问题是当我尝试在其他页面中显示它只显示第一个错误而不是其他错误

validate.php

foreach($validation->errors() as $error) {

           $_SESSION['error'] = $error;

             Redirect::to("teste.php");
        }

teste.php

if(isset($_SESSION['error'])){
  echo $_SESSION['error'];
  unset( $_SESSION['error']);

1 个答案:

答案 0 :(得分:1)

您正在循环遍历其中包含错误的数组,但在发现的第一个错误中,它已将用户重定向到teste.php文件。这样您将永远无法显示所有错误。你应该看看我的解决方案。

validate.php

//Wrap an if around the session checking if there are errors, the class probably has that method as well.
$_SESSION['error'] = $validation->errors();

Redirect::to("teste.php");
//end if

teste.php

foreach($_SESSION['error'] as $error) {
    echo $error;
}

unset($_SESSION['error']);