gpt4 book ai didi

php - laravel 4 - 如何为特定方法加载不同的布局?

转载 作者:可可西里 更新时间:2023-11-01 00:09:31 28 4
gpt4 key购买 nike

我有这样的东西:

class AController extends BaseController
{
protected $layout = "templates.layouts.master";
protected $data = "something";

public function alt()
{
// this is wrong
// i want to override "templates.layouts.master"
// missing something obviously here
$this->layout = ??? what should do?
$this->layout->content = View::make("content", $this->data);
}
}

在方法 alt 中,我希望使用不同于默认“templates.layouts.master”的布局。

我对 Laravel 4 的了解非常有限。这也许很容易实现,但超出了我的知识范围。

我预见的可能解决方案:

  1. 定义一个构造方法,并检测当前方法是什么,并为 $layout 设置不同的值(但是,我不确定如何获取当前方法名称)。
  2. 像我上面的那样做一个作业。

哪个是正确的方法?

最佳答案

您可以将布局设置为每个方法的另一个 View :

class AController extends BaseController
{
protected $layout = "templates.layouts.master";
protected $data = "something";

public function alt()
{
$this->layout = View::make('templates.layouts.alt');
$this->layout->content = View::make("content", $this->data);
}
}

如果查看 BaseController,您会发现它所做的只是调用 View::make()。设置布局 View 。您可以执行相同的操作来覆盖其默认值。

关于php - laravel 4 - 如何为特定方法加载不同的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530917/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com