Как исправить объект класса stdClass не может быть преобразован в строку в PHP Laravel - PullRequest
0 голосов
/ 09 мая 2019

Постоянно говорится: «Объект класса stdClass не может быть преобразован в строку». Я использую php curl lib для http запроса в API. Я уже ищу, но я не понимаю библиотеку Curl.

ошибка, когда я добавляю ключ авторизации, эта ошибка показывает:

Объект класса stdClass не может быть преобразован в строку

в этой строке кода:

['Authorization' => 'Bearer ' .$request->session()->get('user_session_key')]

это мой контроллер:

  public function user_department(Request $request) {
        if ( empty( $request->session()->get('user_session_key') ) ) {
            return redirect('/login');
        }

        $api_response = http_request(
            '/master_file/department/getAllDepartments/',
            [], ['Authorization' => 'Bearer ' .$request->session()->get('user_session_key')], 'GET'
        );
        dd($api_response);

        return view ('user_management.user_department', [
            'department_list' => $api_response->status == 200 ? $api_response->response : []
        ]);
    }

это моя функция http_Request:

function http_request($path, $body = [], $header = [], $method = 'POST') {
    // Open Connection
    $connection = curl_init( \Config::get('constants.api_base_url') . $path );
    $header_content = ['Content-Type: application/json'];

    // Define HTTP Request Method
    curl_setopt($connection, CURLOPT_CUSTOMREQUEST, $method);

    if ( count( $body ) > 0 ) {
        $data_string = json_encode($body);
        // Defind HTTP Request Body
        curl_setopt($connection, CURLOPT_POSTFIELDS, $data_string);
        array_push($header_content, 'Content-Length: ' . strlen( $data_string ));
    }

    curl_setopt($connection, CURLOPT_RETURNTRANSFER, true);

    // Define HTTP Request Header
    curl_setopt($connection, CURLOPT_HTTPHEADER, array_merge( $header_content, $header ));

    // Excute Request
    $response = curl_exec($connection);

    // Response
    return json_decode($response);
}
...