【发布时间】:2017-09-01 21:09:49
【问题描述】:
我创建了一个 API (store),它将数据保存在数据库中,如果成功则返回 201,否则返回 404。
if ($visit->save()){
$visit->view_visit = [
'href' => 'api/v1/visit/' . $visit->id,
'method' => 'GET'
];
$response = [
'msg' => 'Visit created.',
'visit' => $visit
];
return response()->json($response, 201);
}
$response = [
'msg' => 'Error during creation.'
];
return response()->json($response, 404);
完美运行。使用邮递员可以看到状态为>。
这个 API 应该以两种方式使用:由另一个应用程序调用或由 Laravel 表单调用。这是问题:
如果成功,我该如何调用它,它将在浏览器上加载给定的视图? 换句话说,有没有办法让表单调用路由(api本身,比如../api/visit/)并且在成功的情况下加载另一个视图?另外,我想将 response['msg'] 的内容传递给这个新视图。
我知道我可以在 store 方法中通过过滤 HTTP 引用来做到这一点,但我想严格保留控制器代码以管理记录创建。除此之外,我必须将 201/404 代码与返回的数据一起发送。
我还考虑过创建另一个控制器来处理 API 响应然后调用表单,但听起来还是太过分了——我猜应该很简单。
【问题讨论】:
-
顺便说一句,正确的代码显示
method' => 'POST而不是method => 'GET -
查看答案
-
@Ross,谢谢!我按照 Sletheren 的建议做了,效果很好。