Вызов неопределенного метода stdClass :: links () - PullRequest
0 голосов
/ 11 октября 2018

Я отправляю запрос в веб-API, который отвечает закодированным ответом, разбитым на страницы, я получаю ответ и успешно его декодирую.Ответ выглядит следующим образом:

{#225 ▼
  +"message": "تم بنجاح"
  +"code": "1"
  +"data": {#220 ▼
    +"current_page": 1
    +"data": array:10 [▶]
    +"from": 1
    +"last_page": 2
    +"next_page_url": "http://localhost:8000/api/getpostsadmin?page=2"
    +"path": "http://localhost:8000/api/getpostsadmin"
    +"per_page": 10
    +"prev_page_url": -1
    +"to": 10
    +"total": 11
  }
} 

Сильфон является частью кода контроллера:

  if ($response->code=='1')
            {
//                dd($response->data);
                $data=$response->data;

//
//                dd($data);
                 return view('posts',compact('data'));
            }

, а вот код вида:

 <div class="table-responsive">
                    <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
                        <thead>
                        <tr>
                            <th>ID</th>
                            <th>Title AR</th>
                            <th>Title EN</th>
                            <th>Description AR</th>
                            <th>Description EN</th>
                            <th>Created At</th>
                        </tr>
                        </thead>
                        <tfoot>
                        <tr>
                            <th>ID</th>
                            <th>Title AR</th>
                            <th>Title EN</th>
                            <th>Description AR</th>
                            <th>Description EN</th>
                            <th>Created At</th>
                        </tr>
                        </tfoot>
                        <tbody>
                        @foreach($data->data as $datum)
                        <tr>
                            <td>{{$datum->id}}</td>
                            <td>{{$datum->title_ar}}</td>
                            <td>{{$datum->title_en}}</td>
                            <td>{{$datum->description_ar}}</td>
                            <td>{{$datum->description_en}}</td>
                            <td>{{$datum->created_at}}</td>
                        </tr>
                        @endforeach



                        </tbody>
                    </table>
                    {!! $data->links() !!}
                </div>

Почему эта ошибка всегда появляется?Вместо этого я попробовал метод render() и {!! $data->data->links() !!}, но ничего не получилось.

Код API, который возвращает ответ:

$post=post::orderBy('created_at','asc')->paginate(10); $post=$post->toArray(); $post=public_functions::remove_nulls($post); 
return response()>json(["message"=>"success","code"=>'1','data'=>$post]);

1 Ответ

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

Не знаю, если у вас все еще есть проблемы, но вы используете

$post = post::orderBy('created_at','asc')->paginate(10);

, за которыми сразу следует

$post = $post->toArray();

и, наконец,

return response()>json([
  "message" => "success",
  "code" => "1",
  "data" => $post
]);

Существует метод ->links(), который доступен по результату ->paginate(), но не один раз, когда вы используете ->toArray(), и определенно не , когда вы приведете его к json через response()->json().

Если вы хотите, чтобы ->links() был доступен в вашем ответе json, вам необходимо прикрепить его перед преобразованием и приведением или установить в качестве новой переменной:

$post = post::orderBy('created_at','asc')->paginate(10);
$links = $post->links();
$post = $post->toArray();
$post["links"] = $links;

return response()>json([
  "message" => "success",
  "code" => "1",
  "data" => $post
]);

В этом случаеВы должны иметь возможность звонить {!! $data->links !!} по вашему мнению и правильно отображать ваши ссылки на страницы.Просто знайте, что такое $post и почему функции на нем не работают.

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