【发布时间】:2016-01-21 19:35:15
【问题描述】:
我想创建一个删除学生的按钮。但是我有一个问题,我的按钮没有在我的控制器中启动 deleteAction。
我的控制器:
public function deleteAction(Eleve $id, $schoolId)
{
$repository = $this->getDoctrine()->getManager()->getRepository('WCSCantineBundle:Lunch');
$pupil = $repository->findOneBy(array(
'eleve' => $id
));
$em = $this->getDoctrine()->getManager();
$em->remove($pupil);
$em->flush();
return $this->redirect($this->generateUrl('wcs_cantine_todayList', array('schoolId' => $schoolId)));
}
我的路线:
delete_pupil:
path: /
defaults: { _controller: "WCSCantineBundle:CanteenManager:delete" }
我的按钮(在我看来):
<a href="{{ path('delete_pupil', { 'id': lunch.eleve.id, 'schoolId': ecole.id }) }}">Désinscrire</a>
感谢您的帮助。
【问题讨论】:
-
我想,您在路线中忘记了
WCSCantineBundle:CanteenManager:delete末尾的“Action”一词。 -
我会尝试,但通常它不会像这样的路线:wcs_cantine_todayList:路径:/todayList/{schoolId} 默认值:{ _controller: "WCSCantineBundle:CanteenManager:todayList" } 启动 todayListAction
-
是的,你是对的。
Action是自动附加的(多么奇怪的脚本语言)。你检查过,如果你删除参数,方法deleteAction是否被调用? -
@MartinZabel 在 Symfony2 中,路由由 logical groupings 定义,为简洁起见,这些分组中的类和方法名称的后缀被省略。所以
WCSCantineBundle:CanteenManager:delete的逻辑名指的是WCSCantine包中CanteenManagerController类的deleteAction方法。 -
当您单击按钮访问您的路线时,会收到什么具体错误?
标签: symfony controller onclick action