2

PHP Lithiumで、デフォルトのレイアウトを変更するには? 異なるビューに 2 つのレイアウトがあり、それらを異なるビューに切り替えたいのですが、どうすればこれを実現できますか?

ありがとう。

4

1 に答える 1

6

コントローラーでレイアウトを切り替えます。したがって、コントローラーでの作業が完了したら、この方法で render を呼び出します。

return $this->render(array('layout' => 'someFancyLayout'));

コントローラーでもこれを実行できるはずです。よくわかりませんが、この方法で使用するには Controller を拡張する必要があるかもしれません。

 $this->_render['layout'] = 'someFancyLayout';

カスタム メディア ハンドラを設定することもできます。これは、たとえば、GPX ファイルを要求するときに使用されます。その場合、レイアウトを使用する必要はありません。

Media::type('gpx', 'application/text', array(
    'view' => 'lithium\template\View',
    'layout' => false,
    'template' => false
));

rendererまた、呼び出しにフィルターを使用してそれを行うこともできます。

Media::applyFilter('render', function ($self, $params, $chain) {
    $params['options']['layout'] = 'default';
    if (someCondition == isMet) {
        $params['options']['layout'] = 'anotherLayout';
    }
    return $chain->next($self, $params, $chain);
});
于 2013-06-04T20:17:11.677 に答える