Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel/React-“;在null上调用成员函数validated();在控制器中创建其他FormRequest时_Php_Laravel_Laravel 8_Laravel Validation_Laravel Request - Fatal编程技术网

Php Laravel/React-“;在null上调用成员函数validated();在控制器中创建其他FormRequest时

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 { 公共职能规则() { 返回[ “名称”=>[ “必需”, '字符串', ], ... “社交”=>[

我试图在单个axios调用中验证两种不同类型的数据:Profile和ProfileSocial。问题是,当我基于第二个模型创建ProfileSocialRequest并尝试对其进行验证时,它返回对null上的成员函数validated()的
调用;如果在尝试验证数据之前返回数据,则返回有效对象


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()