doumi4974
2015-04-20 05:12
浏览 159
已采纳

Laravel Blade通过@include传递带字符串的变量会导致错误

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!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dsriya5471 2015-07-23 19:50
    已采纳

    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 :("])
    
    打赏 评论
  • doujuanqi2909 2018-09-07 08:30

    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

    打赏 评论
  • douzi8112 2019-07-21 21:15

    in 5.8v, included views inherit all variables from the parent as per in documentation enter image description here

    打赏 评论

相关推荐 更多相似问题