因此,对于我的模板,我正在创建一个运行自定义“模块”的代码块。基本上,它们是自定义帖子类型,在 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 模板的最佳方式是什么?
谢谢