gpt4 book ai didi

php - Laravel 4.2 无法正确渲染 Blade View

转载 作者:搜寻专家 更新时间:2023-10-31 21:34:06 26 4
gpt4 key购买 nike

使用 HHVM 3.1.0(最新版本)在 Ubuntu 12.04 上运行。我最近刚刚尝试从 Laravel 4.1 更新到 4.2,并且遇到了一个非常奇怪的问题,即 Blade View 无法正确编译。 Laravel 日志中没有错误,所以我检查了 HHVM 日志。事实证明,当尝试使用 Blade 加载存储 View 时,HHVM 出现编译错误。我打开存储 View ,发现 Blade 的不同用途没有正确编译。

原始 Blade 代码:

<head>
@include('layouts.partials._favicon')
</head>

<body id="signup-rotate">
@include('layouts.partials._flash-messages')
...

错误的编译:

<head>
<?php echo $__env->make(, array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>('layouts.partials._favicon')
</head>

<body id="signup-rotate">
<?php echo $__env->make('layouts.partials._flash-messages', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>
...

如您所见, header 中的代码出于某种原因未将要包含的 View 添加到函数中,而是将其附加到末尾。这显然是导致 HHVM 无法编译代码,并抛出错误。令我感到奇怪的是,这些包含中的大多数都在工作,但其他的却没有。

这是 Laravel 4.2 的一个已知问题,还是在我的情况下有什么独特的东西会导致这个问题?似乎 Blade 也缺少一些标签,所以当它们显示时,我会在我的 View 文件中使用随机的 blade 语法(如果需要,我可以提供一些代码示例)。

更新这实际上是一个已知问题,并且在 Laravel 和 HHVM git 存储库中都有报告。它显然已在 HHVM nightlies 中修复,并将在下一个版本中正常工作。

https://github.com/facebook/hhvm/issues/2841

最佳答案

由于这在搜索结果中的排名很高,可能值得注意的是,从 HHVM 3.2.0 版本开始,这确实已修复。

如果您出于某种原因仍然停留在版本 < 3.2.0 上,我可以通过找到 HHVM 抛出错误的行(检查日志文件)并添加 { { ""}}。您提到的 GitHub 问题对此进行了更详细的解释,但似乎 Blade 解析导致某些语句落在数组边界上——我提到的“修复”只是将您的 Blade 代码推送到下一个数组。它不是很漂亮,但如果您需要它,它会起作用。

关于php - Laravel 4.2 无法正确渲染 Blade View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com