我收到從Zend的形式的Zend Framework2形式錯誤陣列要JSON
Array
(
[user] => Array
(
[firstName] => Array
(
[isEmpty] => Please enter First Name
)
[lastName] => Array
(
[isEmpty] => Please enter Last Name
)
[password] => Array
(
[isEmpty] => Please enter Password
)
[confirmPassword] => Array
(
[isEmpty] => Please enter Confirm Password
)
[email] => Array
(
[isEmpty] => Please enter Email Address
)
[gender] => Array
(
[notInArray] => Gender must be Male OR Female
[isEmpty] => Please select your gender
)
[phone] => Array
(
[isEmpty] => Value is required and can't be empty
)
[birthDate] => Array
(
[isEmpty] => Please enter Birth Date
)
[country] => Array
(
[id] => Array
(
[isEmpty] => Please select Country
)
)
[userGroup] => Array
(
[id] => Array
(
[isEmpty] => Please select User Group
)
)
)
)
此陣列,我想這個陣列被轉換爲下面的數組:
Array
(
[user[firstName]] => [{"Please enter First Name"}]
[user[lastName]] => [{"Please enter Last Name"}]
...........
[user[gender]] => [{"Gender must be Male OR Female","Please select your gender"}]
..............
[user[country][id]] => [{"Please select Country"}]
)
我嘗試以下代碼但它沒有工作
$errors = $form->getMessages();
$newErrors = array();
foreach ($errors as $key => $value) {
$elementName = $key;
if(is_array($value)) {
foreach ($value as $k => $v) {
$elementName .= $k;
if(!is_array($v)) {
$message = $v;
$newErrors[$elementName] = json_encode($v);
} else {
foreach ($v as $ke => $va) {
$elementName .= $ke;
if(!is_array($va)) {
$newErrors[$elementName] = json_encode($va);
}
}
}
}
}
}
但它沒有奏效。
您可能想詳細說明您的用例,爲什麼您需要JSON中的錯誤?您是否通過AJAX發佈表單,並希望在表單上應用一些錯誤樣式? – AlexP 2015-03-25 12:31:32
絕對是的,我用ajax驗證表單並需要json響應。 – 2015-03-25 12:33:06