Encontrarse con problemas en un sitio que ejecuta Magento 2.2.0-rc3.0 / PHP 7.0.23
El siguiente problema ocurre con todas las extensiones de terceros habilitadas o deshabilitadas.
Al agregar un elemento a la comparación desde la página de categoría o producto o al enviar una revisión desde la página del producto, aparece el siguiente error en el navegador:
1 exception(s):
Exception #0 (InvalidArgumentException): Unable to unserialize value.
Exception #0 (InvalidArgumentException): Unable to unserialize value.
#0 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(157): Magento\Framework\Serialize\Serializer\Json->unserialize('[{\\"type\\":\\"su...')
#1 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(135): Magento\Theme\Controller\Result\MessagePlugin->getCookiesMessages()
#2 /home/___/public_html/app/code/Magento/Theme/Controller/Result/MessagePlugin.php(84): Magento\Theme\Controller\Result\MessagePlugin->getMessages()
#3 /home/___/public_html/lib/internal/Magento/Framework/Interception/Interceptor.php(146): Magento\Theme\Controller\Result\MessagePlugin->afterRenderResult(Object(Magento\Framework\View\Result\Page\Interceptor), Object(Magento\Framework\View\Result\Page\Interceptor), Object(Magento\Framework\App\Response\Http\Interceptor))
#4 /home/___/public_html/lib/internal/Magento/Framework/Interception/Interceptor.php(153): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#5 /home/___/public_html/generated/code/Magento/Framework/View/Result/Page/Interceptor.php(26): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array)
#6 /home/___/public_html/lib/internal/Magento/Framework/App/Http.php(139): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#7 /home/___/public_html/lib/internal/Magento/Framework/App/Bootstrap.php(256): Magento\Framework\App\Http->launch()
#8 /home/___/public_html/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#9 {main}
El error no desaparece a menos que borre las cookies, en particular, la cookie de mensajes de mago.
Se agradece cualquier ayuda para solucionar estos errores.
magento2
magento2.2-dev
unserialize
Arrojar
fuente
fuente
Respuestas:
Pude resolver este problema borrando mi Redis Cache de la CLI
Espero que esto ayude a los futuros usuarios.
fuente
El problema está en /vendor/magento/framework/Serialize/Serializer/Json.php, hay una función unserialize ($ string) que le da un error de sintaxis si la cadena se serializa (no json sino serialización php).
Hay una solución alternativa: puede verificar si la cadena está serializada (frente a codificada por json) y luego usar serializar ($ cadena). Cambie no serializar a:
y agregue la función para verificar si la cadena está serializada:
Después de guardar fe. categoría sin problema, puede restaurar la clase a la predeterminada y no habrá tal problema en el futuro.
fuente
No edite archivos principales para la solución. Reemplazar la siguiente forma Simplemente coloque la siguiente línea en di.xml dentro del directorio etc.
Y dentro del espacio de nombres \ ModuleName \ Serialize \ Serializer Directory: archivo Json.php
Funciona perfectamente
fuente
a:0:{}
a[]
En mi caso, parcheé lo siguiente para deserializar una cadena serializada: Archivo: /vendor/magento/framework/Serialize/Serializer/Json.php
Encontrar:
sustituir por:
fuente
Después de enrojecer a Redis, el problema se ha solucionado. Gracias Craig por la solución.
Estoy usando el puerto 6379 para caché, así que ejecuto el comando:
fuente
Está relacionado principalmente con la memoria caché de Redis, así que trate de eliminar esto con un comando simple en su SSH
redis-cli flushall
fuente
Resultó ser un problema de permisos, donde magento estaba configurando permisos para archivos generados que estaban restringidos en este servidor.
Se resolvió creando el archivo magento_umask en el directorio raíz con la umask adecuada para el servidor.
Consulte http://devdocs.magento.com/guides/v2.2/install-gde/install/post-install-umask.html para obtener detalles adicionales.
fuente
La respuesta anterior de Sameers funcionó para mí, aunque tuve que usar un código diferente en el bloque.
fuente
Directorio ROOT 1.
public_html/vendor/magento/framework/Serialize/Serializer/Json.php
Descargar JSON.php https://gist.github.com/manojind/9f18bbecaeb3e2bbfb056a634ade62a2
2. Simplemente reemplace la siguiente función (deserializar) y agregue una nueva función O simplemente descargue el archivo adjunto y reemplácelo por defecto
3. Añadir nueva función:
fuente
Personalmente, encontré que este problema se basaba en ejecutar el comando:
Después de una migración. Descubrí que me faltaba la clave hash " cripta " en
src/app/etc/env.php
:¡Asegúrese de que esto no esté vacío y de que coincida con los otros entornos de sus proyectos!
fuente
Estaba recibiendo el error en una página CMS en el front-end.
Fue el código del widget Magento en el contenido de la página CMS lo que estaba causando el problema (que copié de otra fuente). Eliminé el código del widget e inserté el mismo widget usando el botón Insertar widget en la pantalla de edición de la página CMS y funcionó.
El proceso anterior formateó el código del widget de manera diferente e hizo que el error desapareciera.
fuente
Descubrí que toda la información serializada no puede encajar en una columna de la tabla MySQL de la base de
TEXT
datos con el tipo de datos.Acabo de encontrar que el
flag_data
valor de la columna de lasystem_config_snapshot
línea está recortado.Tuve que cambiarlo
MEDIUMTEXT
para esta columnaflag.flag_data
.fuente
Fue el mismo error. Cuando trató de actualizar la base de datos (ver 2.2.6) con código nuevo (ver 2.3.2).
Para arreglar - ejecutado
fuente
Esta no es la mejor manera de ejecutar sql directamente, pero lo hice para ahorrarme tiempo. Solo ejecuta esta consulta
fuente
Si tiene la versión 2.3.0 o superior, querrá usar la solución provista por MageLearner. La forma más antigua con declaraciones de casos es obsoleta. Si no utiliza la solución de MageLearner en 2.3.0 o superior; enfrentará todo tipo de problemas con la visualización de datos de pedidos y productos configurables.
fuente