0
Hai Assalamwalaikum, Hari ini saya akan mencoba berbagi tips bagaimana cara parser variable dinamis menggunakan blade di laravel untuk kebutuhan tamplate email, dokumen, surat menyurat dan lain-lain.
Tujuan saya menulis ini sebenarnya supaya tidak lupa, karena ilmu masih belum seberapa. Jadi mohon dimaklumi jika ada tulisan saya yang tidak teman-teman mengerti.

Awalnya saya mencari bagaimana cara parser variable dinamis ke editor (Ckeditor)  dengan segala keterbatasan dan ditambah jadwal dateline yang mepet, karena harus menyelesaikan modul ini kebayang gimana putus asa. Wkwk.
Awalnya tulisan menarik saya temukan pada blog tnt.studio disana di jelaskan bagaimana cara membuat email tamplate yang datanya dari DB.
Sebenarnya ada 2 metode untuk melakukannya, yang pertama menggunakan str_replace , preg_replace_callback .
Bisa kita taruh di helper ataupun di dalam model.
Dalam case ini saya akan menaruhnya di model, sesuai tutorial dari blog di atas,  dengan bahasa yang fahami.


 Metode pertama:

     $nama_user='Admin Ganteng';
     $data=str_replace('{{$nama_user}}',$nama_user,'' );
     $text="Haloo {$nama_user}... Apa Kabar?";
     return view('tes',['konten'=>$text]);






Metode ke 2,
Siapkan 1 Controller dan 1 Models:



    protected $table="tes";
    public function parse($data)
{
    $parsed = preg_replace_callback('/{{(.*?)}}/', function ($matches) use ($data) {
        list($shortCode, $index) = $matches;

        if( isset($data[$index]) ) {
            return $data[$index];
        } else {
            throw new Exception("Shortcode {$shortCode} not found in template id {$this->id}", 1);
        }

    }, $this->content);

    return $parsed;




Bagian Controller

$db=DB::table('tes')->where('id',44)->first();
     $template          = new Tes;
     $template->id      = 44;
     $template->content =$db->nama_aja;
     $data              = [
       'nama_pt'=>'PT. ABC',
       'nama_saya'=>"Admin Ganteng"
     ];
     return view('tes',['konten'=>$template->parse($data)]);




Source database yang isinya HTML:



Output:

Caranya masih sama cukup menambahkan {{nama_pt}}, {{nama_saya}} dalam value databse tsb.


ok sekian tipsnya, wasalam.

Posting Komentar

Not spam, Sara, Politik, Dan Vulgar

 
Top