I am trying to set up a site using laravel, but I'm really having trouble with basic things that the documentation just doesn't cover.
In this case, I see that it says I can include one view inside another by using @include('view.name')
. What is view.name? Where is it saved? I tried creating a file app/views/view.name.blade.php
, but it wasn't read. How does the file name map to the blade name?
This question is related to
laravel
blade
templating
As of Laravel 5.6, if you have this kind of structure and you want to include another blade file inside a subfolder,
|--- views
|------- parentFolder (Folder)
|---------- name.blade.php (Blade File)
|---------- childFolder (Folder)
|-------------- mypage.blade.php (Blade File)
name.blade.php
<html>
@include('parentFolder.childFolder.mypage')
</html>
You can use the blade template engine:
@include('view.name')
'view.name' would live in your main views folder:
// for laravel 4.X
app/views/view/name.blade.php
// for laravel 5.X
resources/views/view/name.blade.php
Another example
@include('hello.world');
would display the following view
// for laravel 4.X
app/views/hello/world.blade.php
// for laravel 5.X
resources/views/hello/world.blade.php
Another example
@include('some.directory.structure.foo');
would display the following view
// for Laravel 4.X
app/views/some/directory/structure/foo.blade.php
// for Laravel 5.X
resources/views/some/directory/structure/foo.blade.php
So basically the dot notation defines the directory hierarchy that your view is in, followed by the view name, relative to app/views
folder for laravel 4.x or your resources/views
folder in laravel 5.x
ADDITIONAL
If you want to pass parameters: @include('view.name', array('paramName' => 'value'))
You can then use the value in your views like so <p>{{$paramName}}</p>
When you use laravel modules, you may add the name's module:
@include('cimple::shared.posts_list')
Source: Stackoverflow.com