0

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

我还为名为“模块化页面”的自定义帖子类型创建了 Blade 模板。在这个模板上,我处理循环中调用的每个模块的所有调用。但是,我希望能够在控制器中处理此登录。因此,我创建了一个名为“LoadModules”的控制器来处理该请求。

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

我已经将 View 类添加到了 Controller 的顶部(就像你在 Laravel 中所做的那样),但我很确定我在这里做错了什么。我收到以下错误:第 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)只是一个使用帖子 ID 从 ACF 中提取的键值数组。

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

该错误显然与“视图”类不存在有关,所以我想知道我是否已命名空间或 Sage 9/Bedrock 不存在视图类。如果这是真的,那么从控制器中包含 Blade 模板的最佳方式是什么?

谢谢

4

1 回答 1

2

你可以试试 :

$output .= App\template('modules.brandwindow', $feild_array)
于 2018-09-18T16:06:32.273 回答