Laravel Blade passing variable with string through @include causes error

PhpLaravelLaravel 5Blade

Php Problem Overview


In Laravel 5.0.27 I am including a view with with a variable and the following code:

@include('layouts.article', [
		'mainTitle' => "404, page not found",
		'mainContent' => "sorry, but the requested page does not exist :("
	])

and I get the following error...

> FatalErrorException syntax ... error, unexpected ','

I've narrowed down that the error is solely from the "(" in the "mainContent" variable string, and when I remove the "(" the error disappears and everything runs fine. I can't find anything in documentation on this or any similar errors listed online.

Does anyone know if this is expected behavior or if this is a bug that should be reported?

Thanks so much for your time!

Php Solutions


Solution 1 - Php

It's not a bug but a limitation of blade syntax due to regex. Solution came from github:

> The problem is using multi-line. You can only use a single line to > [pass variables] in Blade, since syntax is limited [by regular > expressions] > > Try the code below and you should be good to go: > > @include('layouts.article', ['mainTitle' => "404, page not found", 'mainContent' => "sorry, but the requested page does not exist :("])

Solution 2 - Php

>You can pass a $data array

<?php $data=[
        'mainTitle' => "404, page not found",
        'mainContent' => "sorry, but the requested page does not exist :("
    ]  ?>
@include('layouts.article', $data)

>use $data['mainTitle'] etc in layouts.article

Solution 3 - Php

In 5.8v, included views inherit all variables from the parent as per in documentation:

>Even though the included view will inherit all data available in the parent view, you may also pass an array of extra data to the included view:

>php @include('view.name', ['some' => 'data']) >

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionjoeyfbView Question on Stackoverflow
Solution 1 - PhpjoeyfbView Answer on Stackoverflow
Solution 2 - Phpvarun sharmaView Answer on Stackoverflow
Solution 3 - PhpMatteus BarbosaView Answer on Stackoverflow