Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menyahkod Data JSON Dalam Templat Twig Saya?

Bagaimanakah Saya Boleh Menyahkod Data JSON Dalam Templat Twig Saya?

Linda Hamilton
Linda Hamiltonasal
2024-11-10 04:18:02384semak imbas

How Can I Decode JSON Data Within My Twig Templates?

Menyahkod JSON dalam Twig

Menyahkod JSON dalam Twig ialah teknik yang berguna apabila bekerja dengan struktur data yang kompleks dalam templat Twig anda. Walaupun mencari, anda mungkin perasan kekurangan maklumat tentang topik ini.

Ini kerana Twig tidak menyokong penyahkodan JSON secara asli. Walau bagaimanapun, anda boleh melanjutkan kefungsian Twig dengan mudah untuk menyahkod data JSON.

Untuk menyahkod JSON dalam Twig, mari buat sambungan tersuai:

namespace Acme\DemoBundle\Twig\Extension;

use Symfony\Component\DependencyInjection\ContainerInterface;  
use \Twig_Extension;

class VarsExtension extends Twig_Extension
{
    protected $container;
 
    public function __construct(ContainerInterface $container) 
    {
        $this->container = $container;
    }
      
    public function getName() 
    {
        return 'some.extension';
    }
    
    public function getFilters() {
        return array(
            'json_decode'   => new \Twig_Filter_Method($this, 'jsonDecode'),
        );
    }

    public function jsonDecode($str) {
        return json_decode($str);
    }
}

Seterusnya, daftarkan sambungan dalam Services.xml anda fail:

<service>

Akhir sekali, anda boleh menggunakan sambungan dalam templat Twig anda:

{% set obj = form_label(category) | json_decode %}

Ini akan menyahkod rentetan JSON dalam pembolehubah form_label(kategori) ke dalam objek yang anda boleh gunakan dalam templat Twig anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahkod Data JSON Dalam Templat Twig Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn