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

2021-12-18 00:00:00 php laravel laravel-5 blade

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

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 :("
    ])

我收到以下错误...

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

FatalErrorException syntax ... error, unexpected ','

我已经确定错误仅来自mainContent"变量字符串中的(",当我删除("时,错误消失,一切正常.我在文档中找不到任何内容在线列出的此错误或任何类似错误.

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?

非常感谢您的时间!

推荐答案

这不是 bug,而是由于正则表达式导致的 Blade 语法限制.解决方案来自 github:

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

问题是使用多行.您只能使用一行[传递变量] 在 Blade 中,因为语法受到 [通过常规表达]

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 :("])

相关文章