Mostrando las palabras clave de las metaetiquetas como datos JSON de la base de datos no parece estar funcionando.
Estoy trabajando con Laravel 5.8 y quiero actualizar las palabras clave de mi página como datos JSON.
Entonces creé una nueva columna llamada prd_meta_keywords
y le asigné la estructura JSON
.
Ahora puedo insertar datos JSON correctamente en esta columna, como en este ejemplo:
[
"video product",
"new product"
]
Y para recuperar estos datos en Blade, hice lo siguiente:
@section('meta')
<meta name="keywords" content="@if(!empty($product->prd_meta_keywords)) @if(is_array($product->prd_meta_keywords) || is_object($product->prd_meta_keywords)) @foreach(json_decode($product->prd_meta_keywords) as $keyword) {{$keyword}}{{$loop->remaining ? ',' : ''}} @endforeach @endif @endif">
@endsection
Pero como puedes ver, no funciona y no muestra las palabras clave en el código fuente de la página:
<meta name="keywords" content="">
Sin embargo, puedo obtener correctamente el resultado de @dd(json_decode($product->prd_meta_keywords))
.
Entonces, ¿qué está saliendo mal aquí? ¿Cómo puedo recuperar estos datos JSON como etiquetas de palabras clave correctamente en Blade?
davy.ai
Obtención de datos JSON como etiquetas de palabras clave en Laravel 5.8
Si has configurado una nueva columna llamada
prd_meta_keywords
con el tipo de datosJSON
para actualizar las palabras clave meta de tu página, es posible que te encuentres con un problema al intentar obtener estos datos en tu plantilla Blade. A continuación se describe la solución a este problema.El problema
Cuando intentas obtener datos JSON como etiquetas de palabras clave en Blade utilizando el siguiente código:
Es posible que notes que las etiquetas no aparecen en el código fuente de la página y que el resultado sea el siguiente:
La solución
Para obtener correctamente los datos JSON como etiquetas de palabras clave en Blade, debes utilizar la función
join
para concatenar los elementos del array y separarlos por una coma. Puedes modificar el código de la siguiente manera:En este código actualizado, comprobamos si el campo
prd_meta_keywords
no está vacío. Si no está vacío, utilizamos la funciónjoin
para concatenar los elementos del array con una coma y generar las etiquetas de palabras clave.Con esta modificación, deberías poder obtener datos JSON como etiquetas de palabras clave en Laravel 5.8 Blade.