Как добавить внешнюю ссылку из базы данных в laravel?

#html #laravel

#HTML #laravel

Вопрос:

В моем проекте Laravel я создал поле ввода, в котором в качестве входных данных будет указана ссылка facebook account. Этот ввод будет сохранен в базе данных. Затем я создаю объект этой таблицы и использую ссылку в теге. я ожидал, что это приведет меня к указанной ссылке facebook account. Но он создает маршрут, подобный этому /link. Как я могу это решить.

Этот код предназначен для поля ввода

 <div class="form-group col-md-12">
                          <label for="name" class=" form-control-label">
                             Facebook ID
                          <span class="reqfield">*</span>
                          </label>
                          <input type="text" id="fb_link" placeholder="Facebook ID" class="form-control" name="fb_link" required value="{{$data->fb_link}}">
                       </div>
  

И этот код предназначен для отображения ссылки:

 </li><li><a href="{{$setting->fb_link}}"><span class="fa fa-play"></span>Facebook</a>
  

Файл находится здесь

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

1. Как выглядит ваш код?

2. @finiteloop Я только что добавил код.

3. Что происходит на вашем контроллере или в View composer, когда вы dd ($setting-> fb_link), где это установлено перед возвратом вашего представления?

4. Что dd($setting->fb_link) печатается? Добавьте код в свой вид и добавьте вывод, который вы видите на своем экране

5. @OMiShah dd($setting->fb_link ) выводит localhost:8000/facebook.com . Хотя ввод был только facebook.com

Ответ №1:

Это делает клиентский браузер. Ничего общего с Laravel или blade

Если ссылка href не начинается с протокола, то предполагается, что она локальна для текущего сайта.

Вам нужно проверить ссылку, когда она вам предоставлена, и если она начинается с http:// ot https://, то оставьте ее в покое, в противном случае добавьте http: // к URL-адресу, прежде чем сохранять его в базе данных.

Принудительно введите URL в нижний регистр, прежде чем проверять, указали ли они HTTP:// или даже hTTp://

Ответ №2:

Это потому, что в вашем URL отсутствует PROTOCOL ( http , https и т.д. )

Вам необходимо добавить действительный protocol URL-адрес перед сохранением в базе данных или в вашем представлении.

Пример, на ваш взгляд:

 </li><li><a href="http://{{$setting->fb_link}}"><span class="fa fa-play"></span>Facebook</a>
  

Вы также можете использовать метод проверки встроенности Laravel, чтобы проверить, является ли
введенный пользователем URL-адрес действителен или нет. Проверьте https://laravel.com/docs/7.x/validation#rule-url