我在PHP文件中使用此代码:
layout.blade.php
{{ HTML::script('js/abc.js'); }}
问题是abc
对于不同的网页会有所不同,所以我需要将其更改为变量(即$js
)以使值动态化。
目前我正在使用:
{{ HTML::script('js/'.$js.'.min.js') }}
实现这一目标。
我想知道这是否是常规方法吗?还是有更好的方法吗?
我尝试使用{{ HTML::script('js/'.$js.'.min.js') or ''}}
检查$js
是否存在,但它无效。 @if (isset($js))
是我唯一的解决方案吗?
感谢。
答案 0 :(得分:1)
您使用HTML::script
的方式并不可怕,这是完成工作的可接受方式!
我建议使用Form宏,如果由于任何其他原因,它在阅读模板时看起来更好,因为我尽量避免在我的视图中使用尽可能少的PHP。
在app/start.php
文件中,输入以下内容:
Form::macro('javascript_file', function($js = null) {
if ($js === null) return;
return HTML::script( 'js/'.$js.'.min.js');
}
然后在模板中你可以去:
@if isset($js)
{{ Form::javascript_file($js); }}
@endif
可悲的是,在调用javascript_file之前无法检查是否设置了$ js而没有看起来更难看......