Как передать параметры из Laravel в отдельный HTML-файл?

#html #laravel

#HTML #laravel

Вопрос:

Как вы собираетесь передавать параметры из контроллера в laravel в отдельный HTML-файл. Обратите внимание, что этот файл не включен в проект Laravel и является чистым HTML-файлом.

Контроллер как таковой;

 public function sendWarranty($data)
{
   // code here.
}
  

Параметры, которые я хочу передать в HTML-файл, взяты из $data массива. В этом массиве есть такие значения, как имя клиента, номер телефона клиента, номер счета и так далее, К которым мне нужно было бы получить доступ в HTML-файле.
Это выполнимо?

В принципе, мой проект laravel прямо сейчас находится в URL, скажем www.xxx-cms.com ; html находится в другом URL, скажем www.xxx-warranty.com

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

1. вы хотите, чтобы переменные из контроллера передавались в статический html-файл, который находится за пределами проекта и с другим URL? насколько я знаю, контроллер может передавать значение только в блейд-файл, который является php-страницей. также, пожалуйста, прочитайте об атаке XSS.

2. привет, @kapitan, спасибо за предупреждение. однако я не беспокоюсь об атаке xss, поскольку сайт защищен токенами аутентификации и доступен только в том случае, если пользователь получает sms. Также да, клиенты требуют, чтобы мы выводили веб-сайт за пределы проекта laravel, вот почему это так сложно

Ответ №1:

Можно загрузить файл через GuzzleHttp в переменную и выполнить некоторую замену строки, а затем вернуть переменную в качестве ответа

 public function sendWarranty($data)
{
   $client = new GuzzleHttpClient();
   $res = $client->get('https://www.xxx-warranty.com')->getBody();
   //some string replacements
   $res= str_replace('$BRANDNAME$',$data['brand_name'],$res);
   return $res;
}
  

Кстати, вы можете отправлять параметры в www.xxx-warranty.com используя это:

 
   $res = $client->get('https://www.xxx-warranty.com',['param'=>'value',])->getBody();

  

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

1. привет, спасибо за ответ! однако у меня вопрос, как мне тогда вызвать параметры в html? скажем, в моем html у меня есть ввод, подобный такому <input class="form-control" type="text" id="brand" name="brand" value="{{!! $battery['brand_name'] !!}}" readonly> должен ли я называть значение как таковое? в параметрах на контроллере я уже определил его как таковой ['brand' => $battery['brand_name']]

2. К сожалению, если это был HTML, а не blade, вам придется обработать их как строку и заменить ее с помощью str_replace(‘$BRANDNAME $’,$brand_name, $ res);

3. ооо, но где мне это сделать? в контроллере или в самом html?

4. о, милая, а как насчет HTML-части? итак, мой <input type="text id="brand" value="?"> нужно ли мне вносить какие-либо изменения здесь?

5. значение=»$BRANDNAME $»