我尝试更改分页时图像的显示方式。通常情况下,图像处于纵向模式,并且我将perPage设置为2(因此每页有2个图像,因此它看起来像一本书),但随后有风景图像最终与肖像图像混合。所有图像都有一个宽度和高度列,以确定其横向或纵向。
我希望能够告诉分页器将所有景观项目视为2页而不是单页。
这是我目前的代码:
/**
* The attributes on which the comic list can be ordered
* @var array
*/
public static $allowedSortingOptions = [
'sort_order desc' => 'Sort Order (descending)',
'random' => 'Random'
];
/**
* Lists images for the front end
*
* @param $query
* @param array $options Display options
*
* @return File
*/
public function scopeListFrontEnd($query, $options)
{
/*
* Default options
*/
extract(array_merge([
'page' => 1,
'perPage' => 1,
'sort' => 'sort_order',
'chapter' => null,
'language' => 'en'
], $options));
if($chapter) {
$query->where('attachment_id', $chapter);
}
$query->where('language', $language);
/*
* Sorting
*/
if (!is_array($sort)) {
$sort = [$sort];
}
foreach ($sort as $_sort) {
if (in_array($_sort, array_keys(self::$allowedSortingOptions))) {
$parts = explode(' ', $_sort);
if (count($parts) < 2) {
array_push($parts, 'desc');
}
list($sortField, $sortDirection) = $parts;
if ($sortField == 'random') {
$sortField = Db::raw('RAND()');
}
$query->orderBy($sortField, $sortDirection);
}
}
$images = $query->paginate($perPage, $page);
return $images;
}
编辑更清晰:
风景图像相当于2页。当我将$perPage
设置为每页2个项目时,我希望能够告诉分页器将其视为这样。这样它就不会同时显示风景图像和肖像图像,只显示该页面的风景。
答案 0 :(得分:-1)
if($chapter) {
$query->where('attachment_id', $chapter);
}
$query->where('language', $language);
$limit = 20;
$query->pagination($limit);