0
我正在構建一個json REST API。我需要擴展驗證庫爲所有驗證失敗的json輸出添加靜態標記"error":"validation_failed"
。在laravel中添加一個驗證失敗消息的密鑰
// create the validation rules ------------------------
$rules = array(
'firstName' => 'required',
'lastName' => 'required',
'email' => 'required|email|unique:users',
'reg_type' => 'required|in:'.implode(",", $this->types),
'oauthUId' => 'required_if:reg_type,'.implode(",", $this->externalTypes),
'password' => 'required_if:reg_type,email',
'parentId' => 'sometimes|integer|exists:user_accounts,id',
);
// do the validation ----------------------------------
$validator = Validator::make(Input::all(), $rules);
// check if the validator failed -----------------------
if ($validator->fails()) {
// get the error messages from the validator
return $validator->messages();
}
else {
// validation successful ---------------------------
}
我檢查了laravel/validator.php,發現它應該被添加到Illuminate \ Support \ MessageBag對象。
$this->messages->add($attribute, $message);
如何通過擴展驗證器類來做到這一點。
我需要的輸出JSON這樣
{
"error":
"validation_failed",
"firstName":
"The first name field is required.",
"lastName":
"The last name field is required.",
"reg_type":
"The selected reg type is invalid."
}