从 Sober 控制器输出自定义 Blade 部分

Outputting A Custom Blade Partial from Sober Controller

因此,对于我的模板,我正在创建一个运行自定义 "Modules" 的代码块。基本上,它们是自定义的 post 类型,在 ACF 中内置字段。这些模块中的每一个都有自己的 Blade 模板(例如 /resources/views/modules/brandwindow.blade.php)。

我还为名为 "Modular Page" 的自定义 post 类型创建了一个 Blade 模板。在这个模板上,我处理循环中调用的每个模块和任何模块的所有调用。但是,我希望能够在控制器中处理此登录。因此,我创建了一个名为 "LoadModules" 的控制器来处理该请求。

不过,我在从控制器调用 Blade 模板时遇到了一些困难。在函数 GetModules() 中,我遍历 ACF 转发器以查看我需要加载哪个模块,然后为所有相关字段提供另一个特定于该模块的控制器(例如,如果模块 = 'bwindow',调用 BrandWindow- >品牌窗口字段)。这个 returns 一个数组,然后我可以将其传递到视图中。

我已将视图 class 添加到控制器的顶部(就像您在 Laravel 中所做的那样),但我很确定我在这里做错了什么。我收到以下错误: Class 'View' 未在第 25 行 \app\Controllers\LoadModules.php 中找到

这是我的控制器代码:

public static function GetModules()
{
    $brand_window_loader = new BrandWindow;
    $module_array = get_sub_field('content_type');
    if ($module_array == 'bwindow') {
        // Do Brand Window Stuff
        $windows = $brand_window_loader->GetBrandWindows();
        $output = '';
        foreach ( $windows as $window ){
            $feild_array = $brand_window_loader->BrandWindowFields($window);
            $output .= View::make('modules.brandwindow', $feild_array);
        }
        return $output;
    } elseif ($module_array == 'blogfeed') {
        // Do Blog Feed Stuff
        return $module_array;
    }
}

第 25 行抛出的错误是:

$output .= View::make('modules.brandwindow', $feild_array);

$brand_window_loader->BrandWindowFields($window) 只是它使用 post.

'title' => 'Title',
'sub_text' => 'Sub Text',
'url' => 'http://example.com'
ETC.

该错误显然与 "View" class 不存在有关,所以我想知道我是否已命名空间或 View class does not exist with Sage 9/基岩。如果是这样,那么从控制器中包含 Blade 模板的最佳方法是什么?

谢谢

你可以试试:

$output .= App\template('modules.brandwindow', $feild_array)