Я пытаюсь изменить способ отображения изображения при разбивке на страницы.Обычно изображения находятся в портретном режиме, и у меня 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 страницам.Я хочу, чтобы можно было указывать paginator обрабатывать его как таковой, когда у меня $perPage
установлено 2 элемента на страницу.Таким образом, он не будет отображать как ландшафтное изображение, так и портретное изображение, только ландшафт для этой страницы.