首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何扩展Laravel类,其中该方法返回一个视图

如何扩展Laravel类,其中该方法返回一个视图
EN

Stack Overflow用户
提问于 2019-02-26 19:11:43
回答 1查看 65关注 0票数 0

我不确定这是一个Laravel问题还是一个基本的PHP问题。

我们有一个由许多微站点组成的网站。功能是在所有微站点之间共享的,真正不同的是每个微站点的外观和感觉。

在我们的结构中,我们有一个名为HierarchyController的控制器,每个微站点都使用它。您可能会收集到,此控制器负责获取您当时正在查看的任何微站点的页面层次结构。控制器类似于以下内容

代码语言:javascript
复制
Class HierarchyController extends BaseController
{
    public function index(Request $request)
    {
        ... do some stuff ...

        $page_data = [
            'something' => 'something_else',
        ];

        return view('common.pages.hierarchy', $page_data);
    }
}

到目前为止没什么难的。但是现在我需要的是HierarchyController,因为只有少数微站点可以包含它们自己的属性以及来自HierarchyController的属性。我想我可以创建一个特定于微站点的HierarchyController,它扩展了上面的主控制器。类似于:

代码语言:javascript
复制
Class MicrositeHierarchyController extends HierarchyController
{
    public function index(Request $request)
    {
        parent::index($request);

        $page_data = array_merge(--parent_page_data--, [
            'something1' => 'something_else_1',
        ]);

        return view('microsite.pages.hierarchy', $page_data);
    }
}

因为父HierarchyController返回一个视图,而不是一个数组,所以我不确定如何从调用类获得$page_data。这有可能吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-26 19:22:41

您可以捕获父控制器返回的视图,并对其数据执行合并。

代码语言:javascript
复制
class MicrositeHierarchyController extends HierarchyController
{
    public function index(Request $request)
    {
        $view = parent::index($request);

        $page_data = array_merge($view->getData(), [
            'something1' => 'something_else_1',
        ]);

        return view('microsite.pages.hierarchy', $page_data);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54892504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档