如何从 laravel 刀片中的 json 数据创建分页链接

Posted

技术标签:

【中文标题】如何从 laravel 刀片中的 json 数据创建分页链接【英文标题】:how to create pagination links from json data in laravel blade 【发布时间】:2016-04-06 10:23:47 【问题描述】:

我正在尝试从 laravel 刀片模板中的 json 响应创建分页链接。我知道它可以简单地使用 php 创建,但是我怎样才能从 json 响应中做到这一点。

这是我的控制器方法:

function getContact()
   
     return $contacts = Contact::where(array('is_active'=>1))
                        ->paginate(2);

这是我的 jquery ajax 代码,用于在表上显示数据...

   $.ajax(
            type:'GET',
            url: '<?php echo URL::to('contactgroup/contact') ?>', 

            dataType: 'json',               
            success: function(data)
                //console.log(data['data'].length);
            var table='<thead><th><input type="checkbox" id="checkAll" name="checkAll[]"/></th><th>Name</th><th>contact No</th></thead>';
            for(var i=0; i<data['data'].length; i++)
                table += '<tr><td><input type="checkbox" name="checkbox[]" class="individualCheckbox" value="'+data['data'][i].id+'"/></td><td>'+data['data'][i].contact_name+'</td><td>'+data['data'][i].primary_contact_no+'</td></tr>';

            
            $('#contactTable').empty();
            $('#contactTable').append(table);
           
       );

console.log 中的 json 响应是-

"total":3,"per_page":2,"current_page":1,"last_page":2,"next_page_url":"http:\/\/localhost\/smsapi\/public\/contactgroup\/contact\/?page=2","prev_page_url":null,"from":1,"to":2,"data":["id":1,"contact_name"
:"M Islam","primary_contact_no":"017********","personal_email":"m@company.com","work_email"
:"m@company.com","personal_phone":"017********","work_phone":"017********","personal_address":"abc","work_address":"ring road","is_active":1,"entry_by":7,"id":4,"contact_name":"sdsdf","primary_contact_no":"242342","personal_email":"mu@company.com","work_email":"mu@company.com","personal_phone":"12142","work_phone":"fgbf","personal_address":"gfg","work_address":"fgfg"
,"is_active":1,"entry_by":7]

我可以使用上面的 jquery 代码将数据显示到表格中,但是如何显示来自"total":3,"per_page":2,"current_page":1,"last_page":2,"next_page_url":"http:\/\/localhost\/smsapi\/public\/contactgroup\/contact\/?page=2","prev_page_url":null,"from":1,"to":2, 的分页

使用 jquery。

【问题讨论】:

【参考方案1】:

在你的控制器中

function getContact()
   
   $contacts = Contact::where(array('is_active'=>1))
                    ->paginate(2);

   //return multiple value in JSON format
   return \Response::JSON(array(
                                   'data'       => $contacts, 
                                   'pagination' => (string) $contacts->links()
                                )
                          );

在你看来

 $.ajax(
        type:'GET',
        url: '<?php echo URL::to('contactgroup/contact') ?>', 

        dataType: 'json',               
        success: function(data)
            //console.log(data['data'].length);
        var table='<thead><th><input type="checkbox" id="checkAll" name="checkAll[]"/></th><th>Name</th><th>contact No</th></thead>';
        for(var i=0; i<data['data'].length; i++)
            table += '<tr><td><input type="checkbox" name="checkbox[]" class="individualCheckbox" value="'+data['data'][i].id+'"/></td><td>'+data['data'][i].contact_name+'</td><td>'+data['data'][i].primary_contact_no+'</td></tr>';

        
        $('#contactTable').empty();
        $('#contactTable').append(table);
        $('#pagination').html(data['pagination']);   //add this element in your HTML as well
       
   );

【讨论】:

感谢@Ponce 的回答,我添加了控制器代码,但它返回 data['data'] 作为 我编辑你的答案,以便其他人得到这个线程的完美解决方案,现在这个解决方案非常适合我。

以上是关于如何从 laravel 刀片中的 json 数据创建分页链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 刀片模板中使用 JSON 数据进行模型绑定?

从 Laravel Blade 中的 JSON 中选择值

如何在邮件组件中包含 Laravel 刀片降价?

json中的输出对象,带有laravel刀片的单引号?

Laravel 刀片中的 Unicode JSON 用于 React,生成 JSON.parse 问题

如何从 Laravel5 中的刀片模板传递扩展主模板中的变量?