web-dev-qa-db-ja.com

Bladeテンプレートにサブビューを含める方法

私はlaravelを使用してサイトをセットアップしようとしていますが、ドキュメンテーションがカバーしていない基本的なことで本当に困っています。

この場合、@include('view.name')を使用して、あるビューを別のビューに含めることができると表示されています。 view.nameとは何ですか?どこに保存されますか?ファイルapp/views/view.name.blade.phpを作成しようとしましたが、読み取れませんでした。ファイル名はブレード名にどのようにマッピングされますか?

43
Benubird

編集:以下は2014年の推奨ソリューションでした。最近では、 その他の回答で述べたように、@includeを使用する必要があります


Laravelビューでは、ドットはフォルダーセパレーターとして使用されます。例えば、私はこのコードを持っています

return View::make('auth.details', array('id' => $id));

app/views/auth/details.blade.phpを指します

ビュー内にビューを含めるには、次のようにします。

ファイル:layout.blade.php

<html>
  <html stuff>
  @yield('content')
</html>

ファイル:hello.blade.php

@extends('layout')

@section('content')
  <html stuff>
@stop
24
winkbrace

ブレードテンプレートエンジンを使用できます。

@include('view.name') 

「view.name」はメインビューフォルダに存在します。

// for laravel 4.X
app/views/view/name.blade.php  

// for laravel 5.X
resources/views/view/name.blade.php

もう一つの例

@include('hello.world');

次のビューを表示します

// for laravel 4.X
app/views/hello/world.blade.php

// for laravel 5.X
resources/views/hello/world.blade.php

もう一つの例

@include('some.directory.structure.foo');

次のビューを表示します

// for Laravel 4.X
app/views/some/directory/structure/foo.blade.php

// for Laravel 5.X
resources/views/some/directory/structure/foo.blade.php

したがって、基本的にドット表記は、laravel 4.xのapp/viewsフォルダーまたは_のresources/viewsフォルダーに関連するビューが続くディレクトリ階層を定義します。laravel 5.x

追加

パラメーターを渡す場合:@include('view.name', array('paramName' => 'value'))

その後、ビューで値を次のように使用できます<p>{{$paramName}}</p>

176
Gaz_Edge

Laravel 5.6の時点で、この種の構造があり、サブフォルダー内に別のブレードファイルを含める場合、

| ---ビュー

| ------- parentFolder(フォルダー)

| ---------- name.blade.php(ブレードファイル)

| ---------- childFolder(フォルダー)

| -------------- mypage.blade.php(ブレードファイル)

name.blade.php

  <html>
      @include('parentFolder.childFolder.mypage')
  </html>
3