Почему у меня есть ошибка «Неопределенная переменная: req»?

#javascript #jquery #laravel

Вопрос:

Я хочу отобразить карту поиска. Но я продолжаю получать уведомление «неопределенная переменная: req». Что я должен изменить в своем следующем коде:

 var jQuery_1_8_2 = jQuery.noConflict();  $(function () {  var array = JSON.parse('{!! !empty($total_search_query) ? json_encode($total_search_query) : "[]" !!}');  console.log(array);  $('#map2').vectorMap({  map: 'indonesia-adm1_merc',  backgroundColor: '#ADF3F0',  regionStyle: {  initial: {  fill: '#FFFFFF'  },  hover: {  fill: '#175083'  }  },  zoomButtons: false,  zoomOnScroll: false,  zoomOnClick: false,  zoomMax: 1,  normalizeFunction: 'polynomial',  onRegionClick: function (event, code) {  var url = '{{ route("search", ["q" =gt; $req-gt;input("q"), "province" =gt; ":id"]) }}';  url = url.replace(":id", code.toLowerCase());  window.location.href = url;  },  onRegionTipShow: function (event, label, code) {  var map = $('#map2').vectorMap('get', 'mapObject');  var regionName = map.getRegionName(code);  var a = array.find(a =gt; a.name === myTrim(regionName))['count'];    label.html('lt;div class="map-tooltip"gt;lt;h4 class="header"gt;'   regionName   'lt;/h4gt;lt;p class="description"gt;Total: '   a   'lt;/pgt;lt;/divgt;');  }  });  }(jQuery_1_8_2));  

Комментарии:

1. Вам нужно перейти $req-gt;input("q") туда request()-gt;get("q") , где вы создаете URL-адрес из маршрута в onRegionClick функции

2. Поделитесь с нами контроллером, пожалуйста.

3. @UrjaSatodiya спасибо. это работает! все еще в том же коде. Почему URL, который я получаю, всегда показывает «amp;amp;»? Мне просто нужно «amp;» в URL-адресе. Как мне изменить URL-адрес? пример: » 127.0.0.1:8000/cari?q=запрос и amp;province=13 и страница=1 «, я хочу изменить его на » 127.0.0.1:8000/cari?q=запрос и провинция=13 и страница=1 »

4. @niasanny Что делает эта строка url = url.replace(":id", code.toLowerCase()); в той же функции?

5. @UrjaSatodiya без этого кода url = url.replace(":id", code.toLowerCase()); я не получил http://127.0.0.1:8000/cari?q=queryamp;amp;province=:idamp;page=1 . итак, я поместил этот код для замены :id

Ответ №1:

Проблема заключается в $req-gt;input("q") части, которую вы можете определить, посмотрев на сообщение об ошибке, в котором жалуется $req на то, что оно не определено. Причина в том , что в вашем коде Laravel в каком-то месте вы сохранили результат request() в вызываемой переменной $req , которая в данном контексте не существует. Это часть представления, в то время как вы, вероятно, проанализировали результат request() в своем контроллере. В результате вам понадобится

 request()-gt;input("q")  

вместо.