[英]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.