2016-08-08 8 views
1

ページの印刷バージョンを生成するために使用されるphalconコントローラの1つにアクションを作成しています。それが動作しているが、私の問題が生成されたコンテンツを{{ content() }}タグを持っている別のレイアウトの内側に挿入されていることであるPhalcon PhP - アクションのメインレイアウトを無効にする方法

{% extends "layouts/print.volt" %} 
{% block content %} 
    HERE 
    <script type="text/javascript"> 
     window.print(); 
    </script> 
{% endblock %} 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Print</title> 
</head> 
<body> 
<!-- Begin page content --> 
<div class="container"> 
    {% block content %}{% endblock %} 
</div> 
</body> 
</html> 

そして、私のビュー:ここに私のprint.voltのレイアウトです。最後にすべてのウェブサイトのメニュー、私のprint.voltと私のビューを持つページを取得します。マスターレイアウトなしでprint.voltの中に挿入されたビューを得るにはどうすればいいか知りたいです。どうすればこの動作を無効にできますか?

ありがとうございました!

答えて

6

2つのオプションがあります。電子メールが送信用のHTMLを生成するときに、このオプションも本当に便利です

$view = new \Phalcon\Mvc\View\Simple(); 
$view->setViewsDir('PATH_TO_YOUR_VIEWS'); 
$html = $view->render('template-name', $params); 

1)は、レイアウトなしでテンプレートをレンダリングすることができますシンプルなビューを使用します。

2)現在のコントローラーのレイアウト::方法を無効にし

$this->view->setLayout(''); 

3)更新:Timothyは(2)

$this->view->setRenderLevel(\Phalcon\Mvc\View::LEVEL_ACTION_VIEW); 
+0

の$ this - >表示 - >への代替をお勧めしますsetLayout( '');ありがとう!私は正しい<私は10分待たなければならない答えとして投票します。 –

+2

'$ this-> view-> setRenderLevel(View :: LEVEL_ACTION_VIEW);'もっと良い解決策になりますか? – Timothy

+0

@ティモシー私は試したが、うまくいかなかった。 –

関連する問題