Laravel: хранить данные json без обратной косой чертыPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel: хранить данные json без обратной косой черты

Сообщение Anonymous »

Я пытаюсь вставить данные json (сейчас это просто поддельные данные) в MySQL, но делаю что-то не так и не вижу, где ошибка. Версия Laravel 7.4.
Файл миграции:

Код: Выделить всё

Schema::create('example_table', function (Blueprint $table) {
$table->id();
$table->json('json_data');
...
});
Модель имеет соответствующий актерский состав:

Код: Выделить всё

protected $casts = [
'json_data' => 'array'
];
Заводской файл:

Код: Выделить всё

$start_time = Carbon::createFromFormat('d/m/Y H:i:s',  '01/01/2020 00:00:00');

$data = array();
for($i=0;$iaddMinutes(1);
$string_date = $captured_time->format('Y-m-d H:i:s');
$data[] = [mt_rand(0,100),mt_rand(0,100),$string_date];
$start_time = $captured_time;
}

return [
'json_data' => json_encode($data,JSON_UNESCAPED_SLASHES),
];
Я ожидаю, что данные должны храниться в БД:

Код: Выделить всё

[[24,55,"2020-01-02 00:01:00"],[29,73,"2020-01-02 00:02:00"],...]
(независимо от того, хранится ли он в одинарных или двойных кавычках)
Но он хранится с обратной косой чертой, вот так:

Код: Выделить всё

"[[24,55,\"2020-01-02 00:01:00\"],[29,73,\"2020-01-02 00:02:00\"],...]"
Пожалуйста, кто-нибудь знает, как это предотвратить?
Я пытался сохранить его с опцией «JSON_UNESCAPED_SLASHES», но похоже, что он не работает (в случае, если мой код правильно).
Примечание:
Пытаясь исправить это или узнать причину проблемы, я удалил тип приведения в модели, и это сработало, но (для меня) это не имеет смысла. Я думаю, что актерский состав должен быть на модели, так что я не думаю, что это решение. Пожалуйста, дайте мне знать, если я ошибаюсь.
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/661 ... ackslashes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»