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 模型

用户在Laravel中更新密码后自动退出。我怎么防止这个?

在 Laravel 4 中单击按钮后如何在 jquery 中调用控制器函数

laravel 从控制器调用路由