Php Laravel/React-“;在null上调用成员函数validated();在控制器中创建其他FormRequest时
我试图在单个axios调用中验证两种不同类型的数据:Profile和ProfileSocial。问题是,当我基于第二个模型创建ProfileSocialRequest并尝试对其进行验证时,它返回对null上的成员函数validated()的Php Laravel/React-“;在null上调用成员函数validated();在控制器中创建其他FormRequest时,php,laravel,laravel-8,laravel-validation,laravel-request,Php,Laravel,Laravel 8,Laravel Validation,Laravel Request,我试图在单个axios调用中验证两种不同类型的数据:Profile和ProfileSocial。问题是,当我基于第二个模型创建ProfileSocialRequest并尝试对其进行验证时,它返回对null上的成员函数validated()的调用;如果在尝试验证数据之前返回数据,则返回有效对象 ProfileSocial class ProfileRequest扩展了FormRequest { 公共职能规则() { 返回[ “名称”=>[ “必需”, '字符串', ], ... “社交”=>[
调用;如果在尝试验证数据之前返回数据,则返回有效对象
ProfileSocial
class ProfileRequest扩展了FormRequest
{
公共职能规则()
{
返回[
“名称”=>[
“必需”,
'字符串',
],
...
“社交”=>[
“必需”,
“数组”,
"min:1",,
],
];
}
}
ProfileSocialRequest
使用light\Foundation\Http\FormRequest;
类ProfileSocialRequest扩展了FormRequest
{
公共职能规则()
{
返回[
“配置文件\u id”=>[
“必需”,
“整数”,
],
“社会类型识别码”=>[
“必需”,
“整数”,
],
“句柄”=>[
“必需”,
'字符串',
],
];
}
}
ProfileController
公共函数存储(ProfileRequest$request)
{
$data=$request->validated();//此(ProfileRequest)工作正常
$sosicalReq=newprofilesocialrequest($request['socials'][0]);//这将返回一个有效的对象:{“social_type_id”:1,“handle”:“mySocialNetworkHandle”,“profile_id”:1000}
$socialReqData=$sr->validated();//错误:在null上调用成员函数validated()
...
}
我的问题是,如果$socialReq
的每一步都返回一个完整的对象,为什么调用validated()时,$socialReq
会被读取为null?我不确定您想要实现什么,但是手动创建验证类而不是
$sosicalReq = new ProfileSocialRequest($request['socials'][0]);
你应使用:
$sosicalReq = app()->make(ProfileSocialRequest::class);
但它将验证整个输入,而不仅仅是$request['socials'][0]
确定,因此我正试图通过ProfileSocialRequest
上的验证集运行我的social
对象。我的逻辑是:验证ProfileRequest
,然后在socials
数组中运行一个循环,并将每个循环验证为ProfileSocialRequest
。在问题中,我只使用第一个对象@马辛·纳比亚ek@brunouno然后应该改用数组验证,并在单个请求类中对其进行验证,如果不是$sosicalReq->validated()