Symfony Omines DataTables Добавить Редактировать Действие - PullRequest
0 голосов
/ 29 апреля 2019

Я использую пакет Omines для создания DataTables, и я хотел бы создать кнопку, которая запускает действие.Когда я нажимаю на эту кнопку, я хотел бы перенаправить на страницу пользователя с его идентификатором пользователя.Как я могу это сделать?

Например:

enter image description here

Вот мой код:

public function index(Request $request, UserRepository $repo)
    {
        $table = $this->createDataTable()
            ->add('login', TextColumn::class, ['label' => 'Login'])
            ->add('name', TextColumn::class, ['label' => 'Nom'])
            ->add('school', TextColumn::class, ['label' => 'Ecole'])
            ->add('region', TextColumn::class, ['label' => 'Région'])
            ->add('limitDate', TextColumn::class, ['label' => 'Date Limite'])
            ->add('status', TextColumn::class, ['label' => 'Status'])
            ->add('actions', TextColumn::class, ['label' => 'Actions'])
            ->createAdapter(ORMAdapter::class, [
                'entity' => User::class
            ])
            ->handleRequest($request);

    if ($table->isCallback()) {
        return $table->getResponse();
    }

    return $this->render('users/index.html.twig', [
        'controller_name' => 'UsersController',
        'datatable' => $table
    ]);
}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Я предлагаю использовать $this->generateUrl('user_page_route_name', [ROUTE PARAMS]) вместо написания URL-адреса вручную

Таким образом, ваш результат должен выглядеть следующим образом:

$table
    ->add('id', TextColumn::class, ['render' => function($value, $context) {
        return sprintf('<a href="%s">User page</a>', $this->generateUrl('user_page_route_name', [ROUTE PARAMS]));
    });

Таким образом, вы избежите ошибки, когда ваш пользовательизменение URL страницы

0 голосов
/ 29 апреля 2019

Чтобы добавить кнопку - добавьте ссылку с маршрутом на страницу пользователя с указанием идентификатора пользователя. Вы можете попытаться добавить классы CSS, поэтому ссылка оформлена как кнопка.

$table
    ->add('id', TextColumn::class, ['render' => function($value, $context) {
        return sprintf('<a href="/user/%u">User page</a>', $value);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...