Как вернуть представление с помощью массива curl

#php #jquery #laravel

#php #jquery #laravel

Вопрос:

Я делаю запрос cURL на другой сервер и извлекаю оттуда массив. С обычной страницы php при нажатии кнопки запрос jQuery передается на мой контроллер, и я должен вернуть массив cURL, который я получаю, на другую страницу. Я использую return view , но он ничего не делает.

Я пробовал с обратным ответом

 return Response::json(array(
            'success'       => true,
            'message'   => "listing",
            'list' => $listing,

            ));
 

А также с

 return view('page2', ['list' => $listing]);
 

Вот функция контроллера

 public function listStuff(Request $request){

            $url = 'http://someting.com/rest.php';
            $params = array('action' => 'list', 'token' => 'xxx');

            $session = curl_init($url);


            curl_setopt ($session, CURLOPT_POST, true);

            curl_setopt ($session, CURLOPT_POSTFIELDS, $params);

            curl_setopt($session, CURLOPT_HEADER, false);
            curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

            $response = curl_exec($session);

            $listing = $response;


            curl_close($session);

            Debugbar::info($listing);
            return view('page2', ['list' => $listing]);


    }
 

Я проверил с помощью debugbar, что массив проходит. Если я попытаюсь изменить представление с return view помощью и передать массив, представление не загружается.

Комментарии:

1. попробуйте использовать библиотеку guzzle

2. Попробуйте вернуть перенаправление? laravel.com/docs/5.8/redirects

Ответ №1:

Я бы предложил JSON, поскольку с него легко начать.Итак, попробуйте что-то вроде этого

 $listing= json_decode(trim($p_result), TRUE);
return view('page2', ['list' => $listing]);