我在Laravel 5.5 API上有一個POST端點,我用郵遞員來測試我的路線,這裏是問題所在。 我想發送相同類型的對象的數組,像這樣:Laravel驗證對象json的數組
[
{
"name":"test",
"tag":"TEST"
},
{
"name":"test2",
"tag":"TEST_2"
}
]
但我不能設法正確驗證它。
在我的控制,我有這樣的:
$validator = Validator::make($requests->all(), [
'name' => 'required|string',
'tag' => 'required|string'
]);
if($validator->fails())
//Warn user for errors
我也試圖用簡單的
$this->validate($requests->all() ....)
我試着用'.name'
和'*.name'
,但沒有成功重命名規則。
我試圖用$request->input()
代替$request->all()
但沒有成功。
我也試圖遍歷它,但我得到的例外
foreach($request as $req){
$validator = Validator::make($req ....)
//rest of the code
}
在另一方面,我可以檢索這樣$datas = $request->all()
數據並存儲它們,但沒有驗證。
,這似乎是工作的唯一的解決辦法是命名我數組:
{
"data" : [
{
"name":"test",
"tag":"TEST"
},
{
"name":"test2",
"tag":"TEST_2"
}
]
}
然後命名與'data.*.name'
的規則,但這迫使API用戶可以分析陣列。 讓假設我有一個數組$array
至極我要存儲,我需要做的
$arrayParsed = ['data' => $array]
,並調用API與$arrayParsed
,我認爲這是一個有點多餘。
有沒有更好的方法來處理這個問題?
您需要使用密鑰發送數據,然後像上一個例子中所做的那樣進行驗證。這是正確的方法。 –