2016-11-12 12 views
1

現在、私は、特定のブレードビューのすべての利用可能なセクションを取得する必要があるLaravel用のカスタムCMSに取り組んでいます。これらのセクションは、ユーザーがコンテンツを入力できる形式でレンダリングされます。Laravel 5.3 Blade - 入手可能なセクション

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

@endsection 

@section ('right_column') 

@endsection 

私は、配列のいくつかの並べ替えでは、これらのセクションを取得し、それをフォームにレンダリングすることができれば、私はいいだろう:

は、私はこの見解を持っているとしましょう。既存の方法でこれが可能であることは誰でも知っていますか?私はLaravelファイルで役立つ方法を見つけることができませんでした。

そうでなければ、これらのセクションを取得して回答として投稿するカスタムメソッド(または何らかの並べ替え)を書きます。これは、のようなものを返します

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]; 

} 

+0

私は、ビューを生成するViewFactoryを見つけ出し、 'getSections'というメソッドを持っていました。しかし、ビューが生成されると、セクション配列のように最後にいくつかの変数がフラッシュされます。 –

答えて

0

ソリューションは次のように可能性があり

[ 
    'left_column', 
    'right_column' 
] 

編集

は変更:preg_match

preg_match_allには変更: return $matchesreturn $matches[0]