2013-05-20 151 views
0

嗨,感谢您在任何时候都帮助我。我创建了一个登录表单时,管理员登录它会显示所有添加,删除userslist,编辑选项生成网址在symfony2中无法正常工作

和我的全成登录查看代码,并显示用户清单是像在这个

<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删除操作,它再次创建一个视图来确认是否删除用户。即使当我点击没有按钮我的用户正在删除 我的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> 

即使单击了没有它不产生删除其路由可以请你告诉我犯了我的地方

+1

我读了大概4次你的问题,我仍然不确定你的问题是什么,但你为什么把你的'输入'放在一些'a'链接? – cheesemacfly

回答

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

作为一个侧面说明,你的控制和路由定义可以从阅读documentation中获益,它可能工作(是吗?),但它绝对不是最佳做法!

你的路由应该是这样的:

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

...和你的控制器函数定义:

public function deleteAction(Request $request, $id) 

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