Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel Blade passing variable with string through @include causes error

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!

like image 681
joeyfb Avatar asked Apr 20 '15 05:04

joeyfb


2 Answers

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 :("]) 
like image 175
joeyfb Avatar answered Sep 18 '22 19:09

joeyfb


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

like image 30
varun sharma Avatar answered Sep 17 '22 19:09

varun sharma