web-dev-qa-db-fra.com

Afficher l'image d'introduction dans la liste des catégories

J'ai ajouté cette ligne dans mon modèle personnalisé pour afficher l'image:

<?php echo $article->images; ?>

Et j'ai eu ceci à la suite:

{"image_intro":"images\/articles\/liang2.jpg","float_intro":""}

J'ai donc essayé d'afficher l'image en utilisant ceci:

<img src="<?php echo $images->image_intro; ?>" >

La sortie est la suivante: <img src=""> au lieu de <img src="images/articles/liang2.jpg">

Où vais-je mal?

2
James

L'image fait partie d'une chaîne codée JSON, que vous avez vue en faisant écho à $article->images;.

Par conséquent, avant d'essayer d'afficher l'image, vous devez d'abord décoder la chaîne, comme suit:

$images = json_decode($article->images);
2
A. Snake

Tu es très proche. Il ne vous manque plus que l'étape du décodage du $article->images chaîne json.

Comme "A. Snake" correctement dit, vous devez convertir la chaîne JSON en un objet par lequel vous pouvez accéder à chaque clé et valeur.

page de manuel de PHP pour la fonction json_decode ()

Donc cela fonctionnera:

$images = json_decode($article->images);
echo $images->image_intro

Ou vous pouvez le faire en une seule ligne dans votre tag comme ceci:

<img src="<?php echo json_decode($article->images)->image_intro; ?>" >

Pour écrire une déclaration de variable à l'aide de la chaîne JSON décodée, utilisez la syntaxe suivante:

$value = $JSON_object->key

Voir le manuel php pour plus de spécifications et d'exemples.

2
user5421