非常感谢您一直帮助我。我在管理员登录时创建了一个登录表单,它显示了添加,删除,编辑选项的所有用户列表
我成功登录和显示用户列表的视图代码是这样的
<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>
当管理员点击特定的删除选项时,它会在网址中生成特定用户的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>
即使点击否之后它也没有生成删除路线,请告诉我哪里出错了
答案 0 :(得分: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会为您执行此操作。