【问题标题】:Laravel - How to handle API response in controller?Laravel - 如何在控制器中处理 API 响应?
【发布时间】:2020-07-27 21:37:42
【问题描述】:

我正在做电子商务网站

  • 1- 项目后端和 API。 2- 客户端 [前端] 项目。

1-这是后端项目中的功能..

public function register(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required',
        'email' => 'required|email|unique:users',
        'password' => 'required',
        'mobile' => 'required|unique:users',
        'country_id' => 'required'
    ]);
    if ($validator->fails()) {
        return response()->json(['error'=>$validator->errors()], 401);
    }
    $input = $request->all();
    $input['password'] = bcrypt($input['password']);
    $user = User::create($input);
    $success['token'] =  $user->createToken('MyApp')-> accessToken;
    $success['name'] =  $user->name;
    return response()->json([
        'status' => 'success',
        'data' => $success,
    ], 200);    

}

2- 来自客户端的这个函数。

protected function register(Request $request)
{
    $response = \Curl::to('http://localhost/backend/public/api/v1/client-register')->withData(
        [
            'name'=> $request->name,
            'email'=> $request->email,
            'password'=> $request->password,
            'mobile'=>$request->mobile,
            'role_id'=>5,
            'country_id'=> $request->country_id
        ])->post();

        $data = json_decode($response, true);

        // what i need here 

        /*check if(response success){

            / go to route('bla bla');

        }else{

            return back with msg 
            please help 
        }**/

}

**请帮忙:我需要处理响应如果成功转到路由 A 如果失败返回消息!

【问题讨论】:

  • 你 $data 的反应是什么?
  • { "error": { "email": [ "الإسم email تم ادخاله سابقا" ], "mobile": [ "الإسم mobile تم ادخاله سابقا" ] } }
  • { "status": "success", "data": { "token": "eyJ0eXAiOiJKVcw", "name": "user20" } }
  • 我在下面回答。你可以试试。

标签: php laravel curl laravel-passport laravel-api


【解决方案1】:

你的代码应该是这样的。

protected function register(Request $request)
{
    $response = \Curl::to('http://localhost/backend/public/api/v1/client-register')->withData(
        [
            'name'=> $request->name,
            'email'=> $request->email,
            'password'=> $request->password,
            'mobile'=>$request->mobile,
            'role_id'=>5,
            'country_id'=> $request->country_id
        ])->post();

        $data = json_decode($response, true);

        if(isset($data['status'])) {
            return redirect()->route('bla bla');
        } 

        return redirect::back()->withErrors($data['error']);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2019-06-13
    • 2016-12-22
    • 1970-01-01
    • 2020-02-12
    • 2017-08-23
    • 1970-01-01
    相关资源
    最近更新 更多