Laravel Blade,产生默认部分似乎已停止正常工作

时间:2017-07-11 15:59:17

标签: php laravel laravel-5 laravel-5.4

之前一直很好用,但我刚刚更新了所有的作曲家文件,现在我对Laravel Blade有点问题。 Laravel版本为5.4.28

我有这个部分(calculator/leopardgeckos/partials/ogtags.blade.php):

<link rel="canonical" href="https://reptimatecalculator.com" />
<meta property="fb:app_id" content="1795251550755689">
<meta property="og:url" content="https://reptimatecalculator.com" />
<meta property="og:type" content="website" />
<meta property="og:locale" content="en_GB" />
<meta property="og:title" content="ReptiMate - Leopard Gecko &amp; African Fat Tail Gecko Genetics Calculator" />
<meta property="og:description" content="ReptiMate Calculator was built from the ground up to create an accurate genetics calculator for Leopard Geckos & African Fat Tailed Geckos. You'll get a list of outcomes including percentage chance of recessive genes being carried over, a punnet square of genetics and also a percentage table denoting likelihood of certain combos hatching." />
<meta property="og:image" content="{{ url('images/reptimate-og-image.jpg') }}" />

我试图在我的布局文件中调用它,如下所示:

@yield('ogtags', View::make('calculator.leopardgeckos.partials.ogtags'))

因此,如果在其他模板文件的ogtags部分中未设置任何内容,则默认为此部分。

然而,它实际上正在做的是将其打印到屏幕上:

enter image description here

我无法弄清楚导致我的错误的原因,这一段时间以来一直运作良好。有没有其他人遇到这个?

2 个答案:

答案 0 :(得分:2)

修改

我现在正在更新这个,因为Taylor已经标记了框架的更新。在v5.4.28中,标记为"Escape default value passed to @yield directive"的更改在此处引用 - https://github.com/laravel/framework/pull/19643

以下内容可能仍然有效,但您应该能够通过ViewView::make(尚未经过测试)作为我原始问题中的第二个参数,没有任何问题现在。

我设法通过更改此行来解决此问题:

@yield('ogtags', View::make('calculator.leopardgeckos.partials.ogtags'))

为:

@yield('ogtags', new Illuminate\Support\HtmlString(view('calculator.leopardgeckos.partials.ogtags')))

答案 1 :(得分:-2)

应该是:

new Illuminate\Support\HtmlString(View::make('calculator.leopardgeckos.partials.ogtags')

@yield('ogtags', new Illuminate\Support\HtmlString(View::make('calculator.leopardgeckos.partials.ogtags'))