我正在使用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
]);
}
答案 0 :(得分:0)
要添加按钮-添加带有指向用户页面的路由的链接,该链接带有相应的用户ID。您可以尝试添加css类,因此链接的样式为按钮。
$table
->add('id', TextColumn::class, ['render' => function($value, $context) {
return sprintf('<a href="/user/%u">User page</a>', $value);
});
答案 1 :(得分:0)
我建议使用$this->generateUrl('user_page_route_name', [ROUTE PARAMS])
,而不要手动输入网址
所以您的结果应类似于:
$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]));
});
通过这种方式,您可以避免在用户页面网址更改时出现错误