ошибка foreach laravel после использования curl json output - PullRequest
0 голосов
/ 20 октября 2018

это мой код контроллера

$curl = new Curl();
$curl->setUrl('http://localhost:8001/scrape');
$curl->execute();
$data = json_decode(file_get_contents('output.json'));
return view('data-scraping', compact('data'));

я использую скребок для данных на этом порту 8001, это мой вывод. Json

[
    {
        "rank": 1,
        "title": "Did Facebook’s faulty data push publishers to make terrible decisions on video?",
        "url": "http://www.niemanlab.org/2018/10/did-facebooks-faulty-data-push-news-publishers-to-make-terrible-decisions-on-video/",
        "points": 59,
        "username": "laurex",
        "comments": 1
    }
]

и, наконец, что foreach в моем шаблоне блейда

@foreach($data as $key => $value)
    <div class="col-sm-12">
        <a href="{!! $value->url !!}">
            <h3 class="title">{!! $value->title !!}</h3>
        </a>
        <p class="text-muted">
            <strong>Points :</strong> {!! $value->points !!}
            <strong>Comments :</strong> {!! $value->comments !!}
        </p>
        <p class="text-muted">Posted by <a href="#">{!! $value->username !!}</a></p>
    </div>
@endforeach

, но когда я загружаю свою веб-страницу, проблема

Invalid argument supplied for foreach() (View: F:\XAMPP\htdocs\test\resources\views\data-scraping.blade.php)

, когда я использую dd() в моем блэйд-представлении, возвращает none, но есть файл output.json.

если я комментирую функции curl и использую готовый json-файл, который отлично работает

как я могу справиться с этим?

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Скорее всего, вам нужно установить параметр CURLOPT_RETURNTRANSFER.Что-то вроде curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);.Если вы по-прежнему не получаете никакого ответа, возможно, у вас проблема с декодированием json, которая потребует от вас использования метода json_last_error для устранения неполадок.

0 голосов
/ 20 октября 2018

Попробуйте передать true в качестве второго параметра json_decode.$ data = json_decode (file_get_contents ('output.json'), true);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...