我沒有得到我期望的響應。失敗的驗證返回默認錯誤消息,即使提供了自定義消息
這是一個位置的Web服務請求的控制器代碼:
<?php
namespace App\Http\Controllers;
use App\Location;
use Illuminate\Http\Request;
class LocationController extends Controller
{
/**
* Action method to add a location with the supplied Data
*
* @param \Illuminate\Http\Request $p_oRequest Request
*
* @return JSON
*/
public function add(Request $p_oRequest)
{
try {
$p_oRequest->validate(
array(
'name' => 'required|alpha_num',
'user_id' => 'required|integer',
),
array(
'name.required' => 'Name is required',
'name.string' => 'Name must be alphanumeric',
'user_id.required' => 'Curator User Id is required',
'user_id.required' => 'Curator User Id must be an integer',
)
);
} catch (\Exception $ex) {
$arrResponse = array(
'result' => 0,
'reason' => $ex->getMessage(),
'data' => array(),
'statusCode' => 404
);
} finally {
return response()->json($arrResponse);
}
}
}
請求是http://mydomain/index.php/api/v1/location/[email protected]^
響應的原因,我想到的是:{ 「結果」:0,「原因「:」Name must be alphanumeric「,」data「:[],」statusCode「:404}
我得到的實際響應是:{」result「:0,」reason「:」給定的數據是無效「,」data「:[],」statusCode「:404}
請幫忙。這正在擾亂我。
這仍然沒有解決問題。顯然這是其他Laravel開發人員遇到的問題。看看https://github.com/laravel/framework/issues/21059 – user3125602
不,你設置了無效的消息。當你使用'alpha_num'驗證規則時,你應該使用'name.alpha_num'來使它工作。所以要麼你做錯了什麼,要麼你在你的問題中輸入了錯誤的代碼 –
感謝你的迴應,Marcin。我做了你推薦的更正。所有功勞都歸功於你,你是對的 - 我犯了錯誤,他們會創造他們自己的問題,但是,我的JSON中無用的響應的根本原因仍然沒有解決。我已經發現了更廣泛的解決方案,但是我將作爲答案發布。 – user3125602