Symfony Formular Senden -Pausen, wenn die Methode gelöscht wirdPhp

PHP-Programmierer chatten hier
Anonymous
 Symfony Formular Senden -Pausen, wenn die Methode gelöscht wird

Post by Anonymous »

In Symfony 3 hat dieser Code unten gut funktioniert. Upgrade auf Symfony 5 Es nicht. < /P>
Controller: < /p>

Code: Select all

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>
Formular: < /p>
 */
private function createDeleteForm(ACRGroup $aCRGroup)
{
return $this->createFormBuilder()
->setAction($this->generateUrl('group_delete', array('id' => $aCRGroup->getId())))
->setMethod('DELETE')
->getForm()
;
}
< /code>
Das Formular sieht so aus, wenn er rendert < /p>





< /code>
Routing: < /p>
group_delete:
path:     /{id}/delete
defaults: { _controller: App\Controller\ACRGroupController::deleteAction }
methods:  DELETE
This results in error

no route found for "POST
http://localhost:8888/webtools/public/group/20/delete": Method Not
Allowed (Allow: DELETE)

Changing the routing to methods: POST ... < /p>
group_delete:
path: /{id}/delete
defaults: { _controller: App\Controller\ACRGroupController::deleteAction }
methods: POST
< /code>
... damit der Code in den Controller eintritt, aber der Test für < /p>
if ($form->isSubmitted() && $form->isValid())
< /code>
Gibt immer false zurück. Ein DD ($ -Form) zeigt, dass das Formular, das in der Tat gleich falsch ist. Ändern der Form der Formulargenerierung, die zu dem Beitrag übereinstimmt ... < /p>
->setMethod('DELETE')
< /code>
... lässt alles wieder funktionieren. Habe ich hier etwas vermisst, ist nicht der Standard der Löschung inzwischen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post