Как сделать конкатенацию строк с Javascript в представлении Laravel? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть data.data[key].thumb и data.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="" />';

1 Ответ

0 голосов
/ 28 октября 2018

Вы не можете смешивать 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>';
...