2012-01-02 3 views
6

ビューを指定されたケースでレンダリングしないようにする必要がありますが、レンダリングを防ぐ方法を理解できません。cakephpで空白の表示をレンダする

私は

$this->autoRender=false 

を試してみましたが、何も私は異なり、通常のコントローラからレンダリング管理しAPIエンジンを使用しているためか、起こりませんでした。誰でもこれを行うための任意のトリックを知っていますか?

答えて

0

使用しているAPIのエンジンについては何も知らなくても、多分空のコンテンツで空のレイアウトを作ってみると$this->layout = 'empty_layout'

4

がある、これはデフォルトの空のレイアウトであるAjaxのレイアウト$this->layout = 'ajax'を使用してみてくださいとしてのコントローラでそれを呼び出しますajaxメソッドに使用されます。

3

解決策を探しているうちに、この回答が見つかりました。 CakePHPの2.4.xのを使用している場合さて、あなたはあなたのコントローラに次のコードを使用することができます。これは、レンダリングされているだけのビューにつながる

$this->layout = false; 

、レイアウトなし。

11

$this->layout = 'ajax'を使用すると、十分ではないようです。

しかし、これらの両方の線を使用して動作します:

$this->layout = 'ajax'; 
$this->render(false); 
2

それは古い質問です。現在のcake-versionは3.xで、空白のレイアウトを使用する簡単な方法があります。

のみコントローラに追加します。他の回答から

$this->viewBuilder()->autoLayout(false); 
+0

まだビューファイルを検索しようとしていて、「エラー:ExampleController :: myAction()のビューが見つかりませんでした」と表示されます。 –

0

ザ・CakePHPの3 autoLayout(false)方法はまだシステムがあなたが呼び出しているアクションに対応するビュー/テンプレートファイルを検索してみてください必要があります。出力が一切必要ないので、これは私にとっては役に立たなかったので、空のテンプレートもレンダリングする必要がありました。

空のアクションごとに空白を作成すると、実際には空のアクションを1つ選択して再利用する必要があるため、本当にオプションにはなりません。 CakePHP 2にはコントローラapp/Viewを探すように設定する$this->viewPathプロパティがありましたが、CakePHP 3の代わりに対応するコントローラとプレフィックスフォルダを探します。 CakePHP3にルートビューのパスでテンプレートを探すようにすることはあまり知られていません。後者の種類のがあるかもしれないことを意味するので

$this->viewBuilder()->layout(false); 
$this->viewBuilder()->templatePath('.'); // this 
$this->viewBuilder()->template('my_blank_view'); 
また

、私が代わりにautoLayout(false)$this->viewBuilder()->layout(false)を使用しています:

  1. お使いのコントローラのアクションに以下を追加しますsrc/Template/my_blank_view.ctp
  2. を作成します。後で別のレイアウトを設定します。layout(false)は、レイアウトが必要ないことを明示的に設定しています。

2
public function function_without_layout(){ 
    $this->viewBuilder()->autoLayout(false); 
    echo "hello Brij"; 
    exit; 
} 

$this->layout = false;は、CakePHPバージョン3では非推奨です。CakePHPのバージョン3.

2

ため
使用$this->viewBuilder()->autoLayout(false);あなたのコントローラでこれを追加します。

$this->autoRender = false; 

これは私のプロジェクトで動作します。

関連する問題