从 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)
因此,对于我的模板,我正在创建一个运行自定义 "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)