繁体   English   中英

如何通过使用Laravel中控制器的数组变量在视图中进行分页

[英]How to make pagination in view by using the array variable from controller in laravel

我是Laravel的新手,我无法理解从控制器传递到视图的数组的分页概念。

我的查看代码

@foreach($aHotelRooms as $aHotelRoom)
<?php 
    //display contents
?>
@endforeach

在这里,我想使用$aHotelRooms设置分页。

我不知道如何使用$users = DB::table('table_name')->paginate(3); echo $users->render(); 为我的$aHotelRooms ..

请有人帮帮我..

我不知道该怎么用...

paginate(3)将创建一个集合,其中数据库中只有3行。 然后$users->render(); 将创建HTML分页代码。 您必须使用$users->render(); 在视图中。 您不需要使用@foreach或类似的东西来建立分页。

例:

在控制器中:

$aHotelRooms = AHotelRoom::paginate(10);
return view('myview', compact('aHotelRooms'));

myview.blade.php

$aHotelRooms->render();

我终于找到了这个解决方案,对我来说很棒。

调节器

use Illuminate\Pagination\LengthAwarePaginator as Paginator;
use DB;

    public function postHotelresults(Request $request,$page = 1)
    {
    .
    .
    .
    $sqlCond = 'WHERE 1 '.$this->getAreaCondition($_POST['search_city']);
    .
    .
    $query = "SELECT `h`.*,".$countquery.",".$minquery." FROM `abserve_hotels` as `h`";

    $query1 = DB::select($query.$sqlCond);

    $perPage = 2;
    $currentPage = Input::get('page', 1) - 1;
    $pagedData = array_slice($query1, $currentPage * $perPage, $perPage);
    $query1 =  new Paginator($pagedData, count($query1), $perPage);
    $query1->setPath('hotelresults');
    .
    .
    return view('hotel.list', $this->data,compact('query1'));
    }

在这里,单击分页中的链接时, setPath('hotelresults')会导致我的功能

视图

<?php 
if(!empty($query1)){
?>
@foreach($query1 as $aHotelRoom)

{{$aHotelRoom->hotel_id }}
{{$aHotelRoom->logo}}

@endforeach
<?php
echo $query1->render();
}

在这里,我发现一件事,当我们想从控制器传递数组时,应该使用$query1 = DB::select(...)编写查询并return view('hotel.list',compact('query1')); 用于将该查询以数组格式传递给视图。

对某人可能有用...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM