首页 > 解决方案 > 如何在 Laravel 视图中使用 Javascript 进行字符串连接?

问题描述

我有data.data[key].thumbanddata.data[key].image作为变量,这是<script>Laravel Blade 模板中的内部标签。

此行有错误,导致:

使用未定义的常量上传 - 假定“上传”

代码是:

user_status += '<img src="{{asset(uploads/' + data[key].image + '.' + 
                data[key].thumb + ')}}" class="img-responsive" 
                style="height:290px;" alt="360-video-feature" /></div>';

user_status += '<img class="OverlayIcon" src=" 
                {{asset('uploads/video_icon_overlay.png')}}" alt="" />';

标签: javascriptphplaravelblade

解决方案


你不能像这样混合 PHP 和 JavaScript。渲染视图时在服务器上执行 PHP 代码,在客户端执行 JavaScript。即使有可能,您的语法仍然不正确。

user_status += '<img src="{{asset(uploads/' + data[key].image您之前缺少报价uploads/。应该是"uploads

你可以做的是:

user_status += '<img src="' +
               '{{asset("uploads/")}}' + data[key].image + '.' + data[key].thumb + '"' +
               ' class="img-responsive" style="height:290px;" alt="360-video-feature" /></div>';

这样,'{{asset("uploads/")}}'将替换为上传文件夹的 URL 字符串,而 URL 的其余部分将通过 JavaScript 附加。这是浏览器将如何看到它:

user_status += '<img src="' +
               'http://www.example.com/uploads/' + data[key].image + '.' + data[key].thumb + '"' +
               ' class="img-responsive" style="height:290px;" alt="360-video-feature" /></div>';

推荐阅读