Как использовать переменную php внутри тегов скрипта?

У меня есть эта логика в моем приложении для изменения количества товара в корзине:

<script>
const options = document.querySelectorAll('.quantity')

Array.from(options).forEach(function (element) {
    element.addEventListener('change', function() {
        const id = element.getAttribute('data-id')

        axios.patch(`{{ Route::currentRouteName(), ${id} }}`, {
            quantity: this.value
        })
        .then(function (response) {
            window.location.href = '{{ route('cartIndex', App::getLocale()) }}'
        })
        .catch(function (error) {
            window.location.href = '{{ route('cartIndex', App::getLocale()) }}'
        });
        })
});
</script>

Линия

 axios.patch(`{{ Route::currentRouteName(), ${id} }}`, {
            quantity: this.value
        })

раньше было так:

 axios.patch(`/cart/${id}`, {
            quantity: this.value
        })

Я сделал функционал локализации. Теперь мне нужно передать параметр {lang} каждому маршруту, поэтому я использую {{ Route::currentRouteName() }}. однако остальная часть URL-адреса хранится в переменной javascript.

Как лучше всего получить значение переменной id javascript и передать его методу Route::currentRouteName() PHP?

🤔 А знаете ли вы, что...
JavaScript используется для разработки современных одностраничных приложений (SPA), где весь контент загружается асинхронно.


55
1

Ответ:

Решено

Я предлагаю вместо маршрута использовать URL-адрес. Вы можете использовать это, выполнив следующие действия:

let lang = "{{ $lang }}";

let url = "{{'Route::currentRouteName()'}}" + '/' + lang;

Или

let lang = @json($lang);

let url = @json('/cart/' . $lang);