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

时间:2015-04-20 05:12:21

标签: php laravel laravel-5 blade

在Laravel 5.0.27中,我使用变量和以下代码包含一个视图:

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

我收到以下错误...

  

FatalErrorException语法...错误,意外','

我已经缩小了错误,只是来自“mainContent”变量字符串中的“(”),当我删除“(”错误消失,一切运行正常。我在文档中找不到任何内容在线或在线列出的任何类似错误。

是否有人知道这是否是预期的行为,或者这是否是应该报告的错误?

非常感谢您的时间!

3 个答案:

答案 0 :(得分:80)

这不是一个错误,而是由于正则表达式而导致的刀片语法限制。解决方案来自github

  

问题是使用多线。您只能使用一行   [传递变量]在Blade中,因为语法是有限的[通过常规   表达式]

     

尝试下面的代码,你应该好好去:

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

答案 1 :(得分:6)

  

您可以传递$ data数组

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

$data['mainTitle']中使用layouts.article

答案 2 :(得分:0)

在5.8v中,包含的视图按照文档中的说明从父级继承了所有变量 enter image description here