簡體   English   中英

Laravel 4.2無法正確渲染Blade視圖

[英]Laravel 4.2 not rendering Blade views properly

使用HHVM 3.1.0(最新版本)在Ubuntu 12.04上運行。 我剛剛嘗試從Laravel 4.1更新到4.2,並且我有一個非常奇怪的問題,Blade視圖沒有正確編譯。 Laravel日志中沒有錯誤,所以我檢查了HHVM日志。 當嘗試使用刀片加載存儲的視圖時,HHVM出現編譯錯誤。 我打開了存儲的視圖,發現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(); ?>
...

正如您所看到的,標題中的代碼由於某種原因沒有添加要包含在函數中的視圖,並將其附加到結尾。 這顯然導致HHVM無法編譯代碼,並引發錯誤。 我覺得很奇怪,其中大部分包括工作,但其他人則沒有。

這是Laravel 4.2的一個已知問題,還是在我的案例中有什么獨特之處會引起這種情況? 看起來Blade也缺少一些標簽,因此我在視圖文件顯示時會有隨機的刀片語法(如果需要,我可以提供一些代碼示例)。

更新這實際上是一個已知問題,並且已在Laravel和HHVM git存儲庫中報告。 它顯然已在HHVM nightlies中得到修復,並將在下一版本中正常運行。

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

由於這在搜索結果中非常高,因此可能值得注意的是,這在HHVM 3.2.0版本中確實是固定的。

如果由於某種原因你仍然堅持發布<3.2.0,我可以通過找到HHVM拋出錯誤的行(檢查日志文件)並添加{{ "" }} 您提到的GitHub問題更詳細地解釋了這一點,但似乎Blade解析導致某些語句落在數組邊界上 - 我提到的“修復”只是將您的Blade代碼推送到下一個數組。 它不漂亮,但如果你需要它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM