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

2022-08-30 07:49:26

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

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

我得到以下错误...

致命错误异常语法...错误,意外的“,”

我已经缩小了误差仅来自“mainContent”变量字符串中的“(”,当我删除“(”时,错误消失并且一切正常。我无法在文档中找到有关此错误或在线列出的任何类似错误的任何内容。

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

非常感谢您抽出宝贵时间接受采访!


答案 1

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

问题是使用多行。您只能在 Blade 中使用一行 [传递变量],因为语法[受正则表达式] 限制

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

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

答案 2

5.8v 中,包含的视图从父级继承所有变量,如文档中所示:

即使包含的视图将继承父视图中的所有可用数据,您也可以将一组额外数据传递给包含的视图:

@include('view.name', ['some' => 'data'])

推荐