php - Laravel 验证来自有效负载的 json 数据
问题描述
我想知道如何在 Laravel 中验证我的 json 数据。
我有这样的数据
在控制器中我这样要求
request('payment')['cardnumber']
我如何验证这一点。
目前我有一个这样的 RequestValidator 类
public function rules()
{
return [
'billing_address' => 'required',
'town' => 'required',
'county' => 'required',
];
}
这是我的控制器
public function ProcessAdvertPayment(Property $property, Request $request, PropertyPaymentRequest $propertyPaymentRequest)
{
$payload = $request->input('payload', false);
$nonce = $payload['nonce'];
$payment = Braintree_Transaction::sale([
'amount' => 1,
'paymentMethodNonce' => $nonce,
'creditCard' => ['number' => request('payment')['cardnumber'], 'expirationDate' => request('payment')['month'] . '/' . request('payment')['year'], "cvv" => request('payment')['cvv']],
]);
if($payment->success)
{
$property->payment()->create(['amount' => $payment->transaction->amount, 'braintree_transaction_id' => $payment->transaction->id, 'billing_address' => request('payment')['billing_address'], 'town' => request('payment')['town'], 'county' => request('payment')['county']]);
return response()->json($payment);
}
return response()->json(['error' => 'Payment Failed. Please try again or contact your payment provider for further help.'], 400);
}
解决方案
我建议你遵循 Laravel 的关于表单验证请求的教程。它展示了如何检索经过验证的请求数据。
如果您想验证提交的 JSON 有效负载的属性,您可以为验证器提供一个键(/字段)名称payment.country
,例如验证付款所在的国家/地区。
推荐阅读
- google-cloud-functions - 如果未成功响应,Pub/Sub 是否会立即重新发送消息?
- javascript - 在 NestJS 控制器中检索多个参数(@Param)给出未定义的值
- python - 在 AssertionError 的情况下在“断言”之后执行代码
- r - 如何根据所有最接近的时间戳合并这两个数据集?
- javascript - 移动一些dom元素后的回调函数
- recursion - 在 F# 中深度优先搜索邻接列表
- azure - 管道 Azure 触发器中的“AND”条件
- python - 装饰器“对象不可调用”
- siddhi - json:getString 与 map:get,哪个更好?
- scala - 为什么加特林在发送请求之前会暂停