Динамический порядок и пользовательская нумерация страницPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Динамический порядок и пользовательская нумерация страниц

Сообщение Гость »

Я не смог найти похожего поста, поэтому попробую. В настоящее время я работаю над проектом Fullstack Symfony 6 (используя React и Symfony 6), в основном уделяя особое внимание разработке API. Однако я столкнулся с препятствием. Я реализовал пользовательскую нумерацию страниц с помощью Doctrine (избегая использования других пакетов). Проблема возникает при попытке упорядочить столбцы по щелчку мыши во внешнем интерфейсе; это влияет только на данные текущей страницы. Цель состоит в том, чтобы упорядочить его по всем записям. Какова была бы лучшая практика в этом сценарии? Должен ли я вызвать другой API для получения всех записей? Не могли бы вы привести пример?
Репозиторий (построитель запросов)

Код: Выделить всё

class CustomerRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Customer::class);
}

public function getCustomers(
string $column,
string $type,
int    $page = 1,
int    $entriesPerPage = 10): array
{
$query = $this->createQueryBuilder('d')
->orderBy("d.$column", $type)
->getQuery();
$query->setFirstResult($entriesPerPage * ($page - 1))
->setMaxResults($entriesPerPage);

$paginator = new Paginator($query);
$total = $paginator->count();
$lastPage = (int)ceil($total / $entriesPerPage);

return [
'customers' => $paginator,
'lastPage' => $lastPage,
'total' => $total
];

}
}
Контроллер (API)

Код: Выделить всё

    #[Route(path: "/api/customers/{column}/{type}/{page}", name: "customer_get", methods: ["GET"])]
public function getCustomers(
CustomerService $customerService,
string $column,
string $type,
int $page=1
): JsonResponse
{
return $this->json($customerService->getCustomers($column, $type, $page));
}

Ответ (называемый маршрутом: api/customers/created_at/asc/3)

Код: Выделить всё

{
"customers": [
{
"id": 156,
"name": "Test",
"created_at": "2024/03/07",
"updated_at": null
},
{
"id": 157,
"name": "Test",
"created_at": "2024/03/07",
"updated_at": null
}
],
"lastPage": 3,
"total": 11
}
Реагировать

Код: Выделить всё

    const [sortBy, setSortBy] = useState({field: "name", order: "ASC"});
const [sortByCreatedAt, setSortByCreatedAt] = useState(null);

const fetchCustomers = () => {
const sortField = sortByCreatedAt ? 'created_at' : sortBy.field;
const sortOrder = sortByCreatedAt ? sortByCreatedAt.order : sortBy.order;

axios.get(`/api/customers/${sortField}/${sortOrder}/${currentPage}`)
.then(response => {
setCustomers(response.data.departments);
setLastPage(response.data.lastPage)
})
.catch(error => {
console.error(error);
});
};
Вопрос 2.
Есть ли какие-либо возможности улучшить предложение «Упорядочить по» в построителе запросов? Можно ли сделать его более динамичным или и так нормально?

Подробнее здесь: https://stackoverflow.com/questions/781 ... pagination
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Машинописный поиск и нумерация страниц
    Anonymous » » в форуме Jquery
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • PHP HTML JS нумерация страниц
    Anonymous » » в форуме Php
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Нумерация страниц Wordpress CPT перенаправляется в корень
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Пользовательские таксономии Wordpress и пользовательский тип сообщения – не работает нумерация страниц
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Нумерация страниц wp не отображается на главной странице
    Anonymous » » в форуме Php
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»