2016-11-12 105 views
1

目前我正在爲Laravel定製CMS,我需要獲取某個刀片視圖的所有可用部分。這些部分將以用戶填充內容的形式呈現。Laravel 5.3刀片 - 獲取可用部分

可以說我有這樣的觀點:

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

@endsection 

@section ('right_column') 

@endsection 

我會是很好,如果我可以檢索某種陣列的這些部分,並將其呈現形式。任何人都知道現有方法可以實現這一點我在Laravel文件中找不到任何有用的方法。

如果不是,我會編寫一個自定義方法(或某種)來檢索這些部分並將其作爲答案發布。

+0

好吧我找到了生成視圖的ViewFactory,並且有一個名爲'getSections'的方法。但是,當視圖生成時,它會像段數組一樣刷新一些變量。 –

回答

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]