Api 调用 Laravel 8 后如何从控制器返回视图?
Posted
技术标签:
【中文标题】Api 调用 Laravel 8 后如何从控制器返回视图?【英文标题】:How to return to a view from controller after an Api call Laravel 8? 【发布时间】:2021-08-29 02:39:27 【问题描述】:我必须调用 API 来更新购物车,但更新后它不会从控制器索引函数呈现到支付页面
API.php
Route::post('cart',[Controller::class, 'index']);
控制器
public function index()
// updating values
return view('payment');
WEB.PHP 文件
Route::get('/payment', function ()
return view('payment');
);
【问题讨论】:
我猜你需要在index
方法中重定向到支付页面redirect()->route('/payment')
。你可以试试这个方法吗?
您不会从 API 调用返回视图。您将返回包含成功或失败消息的响应,并根据响应执行适当的操作。
【参考方案1】:
您应该首先检查来自 API 的响应。根据响应,您可以进行活动。在您的情况下,您可以使用以下方法。
public function index()
try
//$response = API::functionName($requestData);
if ($response === 'success')
//redirect to payment page
else
//same page with error message;
catch (\Throwable $th)
dd($th->__toString());
【讨论】:
唯一的问题是重定向命令。其他都还好 你在使用Ajax
吗?如果是,那么你需要处理响应检查并使用window.location.href="/payment"
。如果不使用Ajax
,则将此代码放入索引方法redirect()->route('/payment')
;以上是关于Api 调用 Laravel 8 后如何从控制器返回视图?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 curl 和 guzzle 的情况下从控制器 Laravel 调用 API,因为它不起作用 [关闭]
如何从 ReactJS 组件调用 Laravel Api 路由?
在 PHPUnit 中调用路由时如何在 Laravel 8 中模拟 Eloquent 模型