0

您好,感谢您一直以来对我的帮助。我在管理员登录时创建了一个登录表单,它显示了所有带有添加、删除、编辑选项的用户列表

我的成功登录和显示用户列表的查看代码是这样的

<a href="<?php echo $view['router']->generate('deleteuser',array('id'=>$id,))?>">Delete</a>
<td><a href="<?php echo $view['router']->generate('edituser',array('id'=>$id))?>">Edit</a></td>

当管理员单击特定的删除选项时,它将在 url 中生成特定用户的 ID,如下所示url:deleteuser?id=6

对于此路由,我有一个带有删除操作的控制器 deleteuser,它再次创建一个视图以确认是否删除用户。即使我单击 no 按钮,我的用户正在删除我的 deleteuser 控制器

class deleteuserController extends Controller
{
public function showAction(Request $request)
{
$request = $this->getRequest();

     $register = new users();

    $em = $this->getDoctrine()->getManager();

   $repository = $em->getRepository('RepairStoreBundle:users');

    $result = $repository->display();
  return $this->render('RepairLoginBundle:login:success.html.php',array('result'=>$result,)); 

}   
public function deleteAction(Request $request)
{

 $id= $_GET['id'];  
  $request = $this->getRequest();

     $register = new users();
    $em = $this->getDoctrine()->getManager();
   $repository = $em->getRepository('RepairStoreBundle:users');

if($request->getMethod() == 'POST')
{ 

 $register = $repository->find($id);

  $result = $repository->display();
  return $this->render('RepairLoginBundle:login:success.html.php',array('result'=>$result,));
}
 return $this->render('RepairLoginBundle:admin:deleteuser.html.php');
 }



}

我的routing.yml文件是

delete:

pattern:   /delete

defaults:  { _controller:RepairLoginBundle:deleteuser:show}

deleteuser:

pattern:   /deleteuser

defaults:  { _controller:RepairLoginBundle:deleteuser:delete}

这是我的delete.html.php

<div class="modal-footer">  
<a href="<?php echo $view['router']->generate('deleteuser')?>">

<input type="submit" name="Yes" class="btn btn-success" value=Yes /></a>

<a href="<?php echo $view['router']->generate('delete')?>"><input type="submit" name="No" class="btn" data-dismiss="modal" value="No"/></a>
</form>
</div> 

即使单击“否”,它也不会生成删除路线,您能告诉我哪里出错了吗?

4

1 回答 1

0

我看到你正在使用 Twitter Bootstrap,但不清楚你的代码在哪里失败,但你的 HTML 是错误的。

试试这个:

<div class="modal-footer">
  <a href="#" class="btn">Cancel</a>
  <a href="<?php echo $view['router']->generate('deleteuser', array('id' => $id); ?>" class="btn btn-primary">Delete user</a>
</div>

请参阅文档:http: //twitter.github.io/bootstrap/javascript.html#modals

作为旁注,您的控制器和路由定义可以从阅读文档中受益,它可能有效(是吗?)但它绝对不在最佳实践之内!

您的路由应如下所示:

deleteuser:
  path:      /deleteuser/{id}
  defaults:  { _controller:RepairLoginBundle:deleteuser:delete}

...以及您的控制器功能定义:

public function deleteAction(Request $request, $id)

然后你不必在你的控制器中做那个 $_GET ,Symfony2 会为你做。

于 2013-05-20T14:52:29.623 回答