我希望在一个单独的文件中定义全局变量,然后将其插入到我想要的任何位置,因此对于Laravel 4 + Blade,我做到了。
顶级文件example.blade.php:
@include('head')
@include('body')
head.blade.php
$STYLE_PATH_CSS="styleFolder/foundation/css"
$STYLE_PATH_JS="styleFolder/foundation/js"
$STYLE_PATH_JS_VENDOR="styleFolder/foundation/js/vendor"
<link rel="stylesheet" href=" <?php echo $STYLE_PATH_CSS ?>/normalize.css ">
<link rel="stylesheet" href=" <?php echo $STYLE_PATH_CSS ?>/foundation.css ">
<link rel="stylesheet" href=" <?php echo $STYLE_PATH_JS_VENDOR ?>/modernizr.js ">
body.blade.php
<script src="styleFolder/foundation/js/vendor/jquery.js"></script>
<script src="styleFolder/foundation/js/foundation.min.js"></script>
在那之前,它工作正常。然后,我希望再简化一次:用全局变量替换重复路径。所以,
variables_G.blade.php
<?php $STYLE_PATH_CSS="styleFolder/foundation/css" ?>
<?php $STYLE_PATH_JS="styleFolder/foundation/js" ?>
<?php $STYLE_PATH_JS_VENDOR="styleFolder/foundation/js/vendor" ?>
和新的head.blade.php
@include('variables_G.blade.php')
<link rel="stylesheet" href=" <?php echo $STYLE_PATH_CSS ?>/normalize.css ">
<link rel="stylesheet" href=" <?php echo $STYLE_PATH_CSS ?>/foundation.css ">
<link rel="stylesheet" href=" <?php echo $STYLE_PATH_JS_VENDOR ?>/modernizr.js ">
那么就找不到变量的值。错误信息:
Undefined variable: STYLE_PATH_CSS.
谁能帮我吗?
视图应该是愚蠢的,这也意味着您不应在一个视图内部创建变量以提供给另一个视图,也不应为视图提供过多的可重复性。
向Blade View提供全局变量并确保它们随时可用的最佳方法是使用View::share()
:
View::share('STYLE_PATH_CSS', 'styleFolder/foundation/css');
View::share('STYLE_PATH_JS', 'styleFolder/foundation/js');
View::share('STYLE_PATH_JS_VENDOR', 'styleFolder/foundation/js/vendor');
您可以将其添加到composers.php文件并将其加载到您的app/start/global.php
:
require app_path().'/composers.php';
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句