目前我正在为Laravel开发自定义CMS,我需要获取某个刀片视图的所有可用部分。这些部分将以用户可以用内容填充它们的形式呈现。
让我说我有这个观点:
// view.blade.php
@section ('left_column')
@endsection
@section ('right_column')
@endsection
如果我能在某种数组中检索这些部分并在表单中呈现它们,我会很高兴。有人知道现有方法可以做到这一点吗?我在Laravel文件中找不到任何有用的方法。
如果没有,我会编写一个自定义方法(或某种方法)来检索这些部分并将其作为答案发布。
答案 0 :(得分:0)
解决方案可能如下:
public function get_view_sections ($view) // $view should be like page.index
{
# Create file name and path
#
$file_name = preg_replace('/\./', '/', $view).'.blade.php';
$path = resource_path('views/'.$file_name);
# Get file content
#
$file = File::get($path);
# Get sections
#
$matches = [];
preg_match_all('/(?<=\@section\(\').*?(?=\'\))/', $file, $matches);
return $matches[0];
}
这将返回如下内容:
[
'left_column',
'right_column'
]
修改强>
已更改:preg_match
至preg_match_all
已更改:return $matches
至return $matches[0]