Как я могу отобразить laravel разбивки на страницы в компоненте vue?

Мой контроллер такой:

public function index()
{
    $products = $this->product->list(); 
    dd($products);
    return view('admin.product.index',compact('products'));
}

Результат dd($products); примерно такой: https://postimg.org/image/w39usbfrv/

Мой просмотр лезвия laravel выглядит следующим образом:

<section class="content">
    <product-list :product-data="{{json_encode($products)}}" :page="{{json_encode($products->links())}}"></product-list>
</section>

Мой список продуктов компонента vue выглядит следующим образом:

<template>
    <div class="box">
        ...
            <table class="table table-list">
                ...
                <tr v-for="item in products" :key="item.id">
                    <td>{{item.name}}</td>
                    <td>{{item.createdAt}}</td>
                    <td>{{item.updatedAt}}</td>
                </tr>
                ...
            </table>
            <div class="box-footer">
                ...
                    {{this.page}}
                ...
            </div>
        ...
    </div>
</template>
<script>
    export default {
        props: ['productData','page'],
        data(){
            return {
                ...
                products: this.productData.data,
            }
        },
        ...
    }
</script>

Если я запускаю код, результат {{this.page}} пуст

Если это: {{$products->links()}} помещено в представление laravel, оно работает

Но если он прошел через компонент vue, результат будет пустым.

Как я могу решить эту проблему?

Примечание :

Я знаю, как использовать запрос ajax. Но я не использую его. Здесь я просто хочу попробовать другой способ


person Success Man    schedule 22.02.2018    source источник


Ответы (1)


вы не можете закодировать его таким образом в JSON, прочитайте здесь, что может помочь:

https://laravel.com/docs/5.6/pagination#converting-results-to-json

person BitBay    schedule 22.02.2018