рендеринг HTML с динамическими значениями переменных с dompdf - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь передать значения переменным в файле представления шаблона и загрузить HTML, используя dompdf.

Но переданные значения не оцениваются и не отображаются.

Вот мой контроллерФункция:

    $dompdf = new Dompdf();
    $this->f3->set('user_name', 'Ross Geller');
    $this->f3->set('total_amount_due', 2270.00);
    $this->f3->set('amount_received', 1000.00);
    $this->f3->set('remaining_amount', 1270.00);
    $this->f3->set('received_by',  'Rakesh Mali');
    $this->f3->set('received_on', '2018-06-05 06:00:00');

    $template = new \View;
    $html =  $template->render('lunch/invoice.html');
    $dompdf->loadHtml($html);

// (Optional) Setup the paper size and orientation
    $dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
    $dompdf->render();

// Output the generated PDF to Browser
    $dompdf->stream();

Файл шаблона (invoice.html):

<label class="control-label col-sm-2" for="email">A/C Payee:</label>
<div class="col-sm-3">
    {{@user_name}}
</div>

<label class="control-label col-sm-2" for="pwd">Pending Total Amount:</label>
<div class="col-sm-10"> 
    Rs. <span class="amount_holder">{{@total_amount_due}}</span>
</div>

Это то, что отображается:

A/C Payee:
{{@user_name}}
Pending Total Amount:
Rs. {{@total_amount_due}}

Как можно загрузить HTML сзначения установлены?

1 Ответ

0 голосов
/ 05 июня 2018

Включите файл шаблона html, но как файл PHP .. затем обратитесь к переменным, как в сценарии PHP, используя $ вместо @

Пример

    $dompdf = new Dompdf();
    $user_name = 'Ross Geller';
    $total_amount_due = 2270.00;

    ob_start();
    require('invoice_template.php');
    $html = ob_get_contents();
    ob_get_clean();
    $dompdf->loadHtml($html);

// (Optional) Setup the paper size and orientation
    $dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
    $dompdf->render();

// Output the generated PDF to Browser
    $dompdf->stream();

Тогда в файле invoice_template.php есть следующее:

<label class="control-label col-sm-2" for="email">A/C Payee:</label>
<div class="col-sm-3">
    <?=$user_name?>
</div>

<label class="control-label col-sm-2" for="pwd">Pending Total Amount:</label>
<div class="col-sm-10"> 
    Rs. <span class="amount_holder"><?=$total_amount_due?></span>
</div> 
...