Кто-нибудь знает, почему добавлен URL-адрес уведомления базы данных \ на //?

Декорации

У меня есть таблица уведомлений. Я хочу сохранить URL-адрес в виде массива данных внутри класса уведомлений, но добавляется URL-адрес \, ниже мой код, когда я использую красноречивый URL-адрес, не получает полосу, означающую, сохраняйте все, что я передаю в базе данных.

public function toDatabase()
{
    return [
        // 'msg' => "Your Comment On ". $this->post->getAttributes()['title'] ." Was Approved Please click <a href='".route('$this->post->slug')."'>here</a> to view it",

        'msg' => "https://google.com" ,
    ];
}

Что на самом деле хранится в моей базе данных, когда я вызываю класс уведомлений

{"msg":"https:\/\/google.com"}

Похоже, что они добавили защиту от mysql, но построитель запросов не требует инъекций, как указано в документе, исправьте меня, если я ошибаюсь, спасибо

1
Leong 30 Июл 2020 в 14:22

2 ответа

Лучший ответ

На самом деле в вашей таблице уведомлений хранится формат json, как вы можете видеть, это пара key:value json

{"msg":"https:\/\/google.com"}

Чтобы получить данные вашего уведомления, вам нужно json_decode() такие данные

json_decode($notification->data);

Вы также можете обратиться к этому вопросу «почему-are-forward-slashes-escaped ", чтобы узнать больше об избежании косой черты

1
Mahmoud Abdelgawad 30 Июл 2020 в 11:55

Еще один поворот, который я поднимаю, - это кодировать URL-адрес, а затем хранить его внутри db

0
Leong 31 Июл 2020 в 10:13