контроллер: < /p>
Код: Выделить всё
public function deleteAction(Request $request, ACRGroup $aCRGroup)
{
$form = $this->createDeleteForm($aCRGroup);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
//Check for related entities (if found, prevent deletion)
$reasons ="";
//Users
if (!$aCRGroup->getUsers()->isEmpty()) {
$reasons .= 'användare ';
}
//DebitPeriods
if (!$aCRGroup->getDebitPeriods()->isEmpty()) {
$reasons .= 'debiteringsperioder ';
}
//Analysis
if (!$aCRGroup->getAnalysis()->isEmpty()) {
$reasons .= 'analyser(flygsäkerhetsbedömningar) ';
}
//Positions
if (!$aCRGroup->getPositions()->isEmpty()) {
$reasons .= 'positioner ';
}
if (strlen($reasons)>0) {
$this->helper->flash('fail','Kunde inte radera gruppen '.$aCRGroup->getName().' eftersom det finns '.$reasons.' knutna till den.');
return $this->redirectToRoute('group_index');
} else {
$groupName = $aCRGroup->getName();
$em = $this->em;
$em->remove($aCRGroup);
$em->flush($aCRGroup);
$this->helper->flash('success','Raderade gruppen '.$groupName);
return $this->redirectToRoute('group_index');
}
}
< /code>
Форма: < /p>
*/
private function createDeleteForm(ACRGroup $aCRGroup)
{
return $this->createFormBuilder()
->setAction($this->generateUrl('group_delete', array('id' => $aCRGroup->getId())))
->setMethod('DELETE')
->getForm()
;
}
< /code>
Форма выглядит так, когда визуализируется < /p>
< /code>
Маршрутизация: < /p>
group_delete:
path: /{id}/delete
defaults: { _controller: App\Controller\ACRGroupController::deleteAction }
methods: DELETE
Нет маршрута для «post
http: // localhost: 8888/webtools/public/group/20/delete»: метод не
Разрешено (разрешение: delete)
group_delete:
path: /{id}/delete
defaults: { _controller: App\Controller\ACRGroupController::deleteAction }
methods: POST
< /code>
... что позволяет коду вступать в контроллер, но затем тест на < /p>
if ($form->isSubmitted() && $form->isValid())
< /code>
Всегда возвращает false. DD (форма $ form) показывает, что форма выпуска действительно равна false. < /P>
Очевидно, что это было связано с конфликтом между маршрутизацией, ожидающей, и созданием создания формы, генерирующей форму с помощью удаления метода. Таким образом, изменение функции генерирования форм в соответствии с постом ... < /p>
->setMethod('DELETE')
< /code>
... заставляет все это снова работать. < /p>
Но почему Delete, по -видимому, больше не допускается? Я что -то здесь пропустил, разве не стандарт удаления метода к настоящему времени?
Подробнее здесь: https://stackoverflow.com/questions/735 ... te-is-used