问题
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!
回答1:
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 :("])
回答2:
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 inlayouts.article
回答3:
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:
@include('view.name', ['some' => 'data'])
来源:https://stackoverflow.com/questions/29739745/laravel-blade-passing-variable-with-string-through-include-causes-error