【问题标题】:Symfony Omines DataTables Add Edit ActionSymfony Omines DataTables 添加编辑操作
【发布时间】:2019-09-18 00:44:24
【问题描述】:

我正在使用捆绑包 Omines 创建 DataTables,并且我想创建一个运行操作的按钮。 当我点击这个按钮时,我想用他的用户 ID 重定向到一个用户页面。 我怎么能这样做?

例如:

这是我的代码:

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
    ]);
}

【问题讨论】:

    标签: symfony datatable


    【解决方案1】:

    我建议使用$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 更改时出现错误

    【讨论】:

      【解决方案2】:

      要添加按钮 - 将带有路由的链接添加到具有相应用户 ID 的用户页面。您可以尝试添加 css 类,因此链接样式为按钮。

      $table
          ->add('id', TextColumn::class, ['render' => function($value, $context) {
              return sprintf('<a href="/user/%u">User page</a>', $value);
          });
      

      【讨论】:

        猜你喜欢
        • 2019-02-13
        • 1970-01-01
        • 2021-07-27
        • 2018-05-07
        • 1970-01-01
        • 2020-03-04
        • 1970-01-01
        • 1970-01-01
        • 2019-05-11
        相关资源
        最近更新 更多