[Resuelto] Se produjo una excepción en el controlador: no se pudo encontrar el controlador
Cuando ejecutan una aplicación Symphony, los usuarios suelen recibir el mensaje Se produjo una excepción en el controlador: no se pudo encontrar el error del controlador seguido de la ruta del controlador configurada. Este es el caso cuando la aplicación utiliza la base de datos MySQL.
El error generalmente aparece cuando MySQL no está instalado, tiene nombres de archivos incorrectos, faltan archivos críticos o están almacenados en el directorio incorrecto, o las extensiones requeridas no están instaladas o activadas.
¿Cómo soluciono el error Se produjo una excepción en el controlador?
Antes de comenzar con las soluciones ligeramente complejas, pruebe estas rápidas:
- Asegúrate de haber guardado el archivo. env.local con un punto (.) antes del nombre del archivo y que esté almacenado en el directorio app/. Tanto app/.env como app/.env.local deben almacenarse en el mismo directorio.
- Ejecute el comando dentro del contenedor PHP en lugar del terminal predeterminado de la PC.
- Asegúrese de que php.ini tenga el nombre como tal y no php.ini-prod después de editarlo.
1. Instale MySQL y sus controladores
Instale MySQL ejecutando el siguiente comando en la terminal:sudo apt install php-mysql
Para quienes ejecutan Linux, utilice este comando para instalar las extensiones que faltan:sudo apt-get install php-mysql php-pdo
Si usa Docker, use este comando para instalar los controladores MySQL:RUN docker-php-ext-install pdo pdo_mysql
2. Activa las extensiones
En el archivo php.ini, agregue la ruta donde xampp instaló las extensiones junto a extension_dir. Por ejemplo, podría ser:C:\xampp\php\ext
Ahora, activa las siguientes extensiones:
- extensión=bz2
- extensión=rizo
- extensión = información de archivo
- extensión=gd2
- extensión=obtenertexto
- extensión=cadenamb
- extensión=exif
- extensión=mysqli
- extensión=pdo_mysql
- extensión=pdo_sqlite
3. Agrega la ruta absoluta
Agregue la ruta absoluta (podría ser diferente en su caso) a extensions_dir con el siguiente comando:extension_dir = "c:\php5\ext"
Una vez hecho esto, reinicie el servidor web y verifique si hay mejoras.
4. Reemplace 127.0.0.1 con Localhost
Si recibe el mensaje Se produjo una excepción en el controlador: no se pudo encontrar el error del controlador durante la ejecución: php bin/console doctrine:database:create
o symfony console doctrine:database:create
Reemplace 127.0.0.1 con localhost en DATABASE_URL. Finalmente se convierte en:DATABASE_URL="mysql://db_user:db_password@localhost:3306/db_name?serverVersion=5.7&charset=utf8mb4"
Muchos usuarios han confirmado que la solución funciona. Deberías intentar esto incluso si tanto [email protected] como root@localhost están almacenados en la tabla de usuarios de MySQL.
5. Reinstale PostgreSQL de PHP y elimine las versiones de PHP no utilizadas
- Retire Symphony de la computadora. Verifique el directorio ~/.symfony o cualquier otra ubicación donde pueda estar almacenado.
- Ahora, ejecute el siguiente comando para eliminar PostgreSQL de PHP:
sudo apt-get --purge remove php-pgsql
- Elimine la versión de PHP no utilizada con este comando (la versión puede diferir en su caso):
sudo apt-get purge 'php5.6'
- Utilice este comando para instalar PostgreSQL de PHP:
sudo apt-get install php-pgsql
- Finalmente, descarga Symphony desde el sitio web oficial para tu sistema operativo y comprueba si hay mejoras.
Una de estas soluciones debería haber ayudado a solucionar el error Se produjo una excepción en el controlador: no se pudo encontrar el controlador. Recuerde, el error puede surgir desde configuraciones erróneas triviales hasta una corrupción importante, y tendrá que abordarlo de manera adecuada.
Para cualquier consulta o para compartir lo que funcionó para usted, deje un comentario a continuación.
Deja una respuesta