私は期待した応答が得られません。カスタムメッセージが提供されても、検証が失敗してもデフォルトのエラーメッセージが返されます
この場所の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、「理由": "名前は英数字でなければなりません"、 "データ":[]、 "からstatusCode":404}
I代わり得る実際の応答がある:{ "結果":0、 "理由":" 与えられたデータました無効 "、"データ ":[]、" statusCode ":404}
助けてください。これは私を悩ましている。
それでも問題は解決しませんでした。明らかに、それは他のLaravel開発者が経験する問題です。 https://github.com/laravel/framework/issues/21059 – user3125602
いいえ、無効なメッセージを設定してください。 'alpha_num'バリデーションルールを使用したときは、' name.alpha_num'を使って有効にしてください。だからあなたは何か間違っているか、あなたの質問に間違ったコードを入れています –
応答ありがとう、Marcin。私はあなたが推奨する訂正をしました。私は間違いを犯しましたが、彼ら自身の問題を作り出していましたが、私のJSONで役に立たない応答の根本的な原因は依然として解決されていません。私はより広い解決策を発見しましたが、答えとして投稿します。 – user3125602