为什么我在此代码中收到错误'Illegal offset type'?



为什么我在$errors[$field] .= '<div class="error"><p>' . $error . '</p></div>';行的代码中得到错误"非法偏移类型"?

代码:

$errors = [];
foreach ($validation->errors() as $field)
{
   $errors[$field] = '';
   foreach ($field as $error) {
      $errors[$field] .= '<div class="error"><p>' . $error . '</p></div>';
   }
}

验证:

private function addError($field, $error)
{
   $this->errors[$field][] = $error;
}
public function errors()
{
   return $this->errors;
}

解决方案:

foreach ($validation->errors() as $key => $fieldErrors)
{
   $errors[$key] = '';
   foreach ($fieldErrors as $error) {
      $errors[$key] .= '<div class="error"><p>' . $error . '</p></div>';
   }
}
foreach ($field as $error)

这条线表明CCD_ 2是一个数组。不能将一个数组用作另一个数组的键。

$errors[$field]  << won't work!

要修复此问题,请将addError方法更改为:

private function addError($field, $error)
{
   $this->errors[$field] .= $error; //I changed [$field][] to [$field]
}

最新更新