im ersten, überschreibe ich fosuserbundle Form es funktioniert, aber wenn Sie versuchen, die gleiche Sache mit RegistrationController es funktioniert nicht. Jemand hilft bitte. Ich folgte die Dokumentation:überschreiben fosbundle RegistrationController symfony 3
<?php
// src/AppBundle/Controller/RegistrationController.php
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\RedirectResponse;
use FOS\UserBundle\Controller\RegistrationController as BaseController;
use Symfony\Component\HttpFoundation\Request;
class RegistrationController extends BaseController
{
public function registerAction(Request $request)
{
$form = $this->container->get('fos_user.registration.form');
$formHandler = $this->container->get('fos_user.registration.form.handler');
$confirmationEnabled = $this->container->getParameter('fos_user.registration.confirmation.enabled');
$process = $formHandler->process($confirmationEnabled);
if ($process) {
$user = $form->getData();
.......
?>
Sie haben einen nicht existierenden Dienst "fos_user.registration.form" angefordert. Meinten Sie eine von diesen: "fos_user.registration.form.factory", "fos_user.registration.form.type"?
i Master-Version – dessteyu
Ja, aber den Code, den Sie gerade oben geschrieben haben, ist die 1.3.X Version des RegistrationController verwenden Sie sind mit. Sie versuchen also, die Version 1.3.X von RegistrationController zu schreiben, um die Masterversion dieses Controllers zu überschreiben, aber diese Version verwendet nicht dieselbe Variable. Aus diesem Grund haben Sie einen Fehler "nicht vorhandenen Dienst". Kopieren Sie den Inhalt der Master-Version des Controllers in Ihren eigenen Controller und nehmen Sie Ihre Änderungen vor. – Namoz
Vielen Dank, es funktioniert! – dessteyu