【发布时间】:2021-09-21 22:20:46
【问题描述】:
我正在构建一个小型应用程序来在数据库中存储联系人,我已经完成了 GET/POST 路由,并且工作正常,现在我在 API 路由上(为了使用 AJAX 调用)。如果 POST 请求中存在所有字段,我可以存储信息,但是,如果我想将消息发送回呼叫(以发送有关未存储联系人原因的反馈),则响应会将我发送到主路由www.myapp.com(没有消息)我想用“原因”发回一个 json。
此时我只验证 'nombre'、'correo'、'telefono' 是否有标准 Laravel 的请求验证方法的信息。
这是我的 LeadController
public function storeApi(Request $request)
{
$request -> validate([
'nombre' => 'required',
'correo' => 'required' ,
'telefono' => 'required'
]);
if(Lead::create($request->all())){
$result[] = ['saved' => true];
}else{
$result[] = ['saved' => false,
'reason' => 'Some data is missing'];
return response()-> json($result);
};
return response()-> json($result);
}
当记录被存储时,它确实会发回 Json {'saved' : true} 但失败时它只会将您发送回'/'路由:www.myapp.com
如何将消息发送回 POST 调用?
【问题讨论】:
-
$request->validate()在数据无效时执行重定向。请参阅此答案:stackoverflow.com/a/52665249/3965631(和/或该页面上的其他答案) -
谢谢,我刚刚意识到如果无效,它会引发异常,因为我没有任何 CATCH,它只会将我发送回主路线:'/' 谢谢