Laravel 5.3刀片 - 获取可用的部分

时间:2016-11-12 14:47:34

标签: php laravel blade

目前我正在为Laravel开发自定义CMS,我需要获取某个刀片视图的所有可用部分。这些部分将以用户可以用内容填充它们的形式呈现。

让我说我有这个观点:

// view.blade.php
@section ('left_column')

@endsection

@section ('right_column')

@endsection

如果我能在某种数组中检索这些部分并在表单中呈现它们,我会很高兴。有人知道现有方法可以做到这一点吗?我在Laravel文件中找不到任何有用的方法。

如果没有,我会编写一个自定义方法(或某种方法)来检索这些部分并将其作为答案发布。

1 个答案:

答案 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_matchpreg_match_all

已更改:return $matchesreturn $matches[0]