【问题标题】:Laravel : Variable layout for a single viewLaravel:单个视图的可变布局
【发布时间】:2013-05-23 01:33:03
【问题描述】:

我想知道是否有一种方法可以在 laravel 中为单个视图使用可变布局。

我看到了登录部分。我想通过 AJAX 调用在灯箱中显示登录视图。当通过 ajax 调用登录视图时,我正在考虑使用不同的布局。 像这样的:

if($_GET["from"] == "ajaxLink") {
// use layout1
} else {
// use layout2
}

这显然行不通。 :) 有什么办法可以做到吗?

谢谢。

【问题讨论】:

    标签: php ajax views laravel


    【解决方案1】:

    两种方式。

    1。刀片布局

    控制器:

    $layout = Request::ajax() ? 'layout1' : 'layout2';
    
    $data = array('layout' => $layout);
    
    return View::make('index', $data);
    

    查看:

    @layout($layout) 
    //rest of the code....
    

    2。控制器布局

    public function action_index()
    {
        $this->layout = Request::ajax() ? 'layout1' :'layout2';
        $this->layout->nest('content', 'index');
    }
    

    【讨论】:

    • 工作就像一个魅力。谢谢
    • @itachi 你确定控制器布局方法会起作用吗?在操作中设置$this->layout 时不需要View::make() 吗?
    • @PhillSparks 您在使用控制器布局时不需要View::make$this->layout->nest() 中的第二个参数指向视图文件。与 laravel 中的其他方法不同,控制器布局不使用return
    • @itachi 和 L3 你需要使用View::make() 如果你在控制器动作中设置它,只有当你使用public $layout 时你不需要View::make。看看Controller source
    猜你喜欢
    • 2015-06-07
    • 1970-01-01
    • 2017-04-08
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    • 2016-08-08
    • 1970-01-01
    相关资源
    最近更新 更多