私のプロジェクトでは、ビューをライトボックスに表示していますが、トップ ナビゲーションをロードしたくありません。私は使用しています:
$this->render('ajax');
そうすれば、コンテンツのみが読み込まれ、ライトボックス内で見栄えがします。
問題は、ビューリンクを共有するときです。
ビュー リンクをクリックすると、トップ ナビゲーションなどのないビュー ページのみが表示されます。
ビューメソッドのみのレンダリング値を変更するにはどうすればよいですか?
私のプロジェクトでは、ビューをライトボックスに表示していますが、トップ ナビゲーションをロードしたくありません。私は使用しています:
$this->render('ajax');
そうすれば、コンテンツのみが読み込まれ、ライトボックス内で見栄えがします。
問題は、ビューリンクを共有するときです。
ビュー リンクをクリックすると、トップ ナビゲーションなどのないビュー ページのみが表示されます。
ビューメソッドのみのレンダリング値を変更するにはどうすればよいですか?
通常、ここでリクエスト ハンドラが機能します。
次のようなことを試してください:
if ($this->request->is('ajax')) {
$this->layout = 'ajax';
$this->render('ajax');
} else {
$this->layout = 'regular_layout';
$this->render('not_ajax');
}
直接アクセスapp/controller/action
すると、代わりに「非 ajax」ビュー/レイアウトがレンダリングされます。
詳しくはドキュメントをご覧ください。
$this->referer() を使用して、ユーザーがあなたのサイトまたは別のサイトから来たかどうかを確認できます。別のサイト (外部) から来た場合は、別のビューをレンダリングするか、ユーザーを別のページにリダイレクトするだけです..アドレスを参照するのではなく、セッションで同じことを行い、ユーザーがセッションを持っているかどうかを確認します(以前に設定する必要がありました)...