Я хочу создать систему тикетов с Laravel. Я сохраняю данные чата в json типе данных. когда пользователь хочет отправить ее / его билет, я получаю ее / его данные и сохраняю их с этим кодом:
$messages = array([
'message_title' => post('message_title'),
'message_body' => post('message_body'),
'type' => 'q',
'created_at' => date('Y/m/d H:i:s'),
]);
$messagesToJson = json_encode($messages);
$query = DB::table('test')->insert([
'level_id' => post('message_level'),
'status' => 0,
'ticket_id' => post('user_id') . time(),
'user_id' => post('user_id'),
'backend_user_id' => '',
'messages' => $messagesToJson,
]);
эти данные хранятся в MySQL:
[
{"message_title":"This is title","message_body":"Some text ... .","type":"q","created_at":"2020\/02\/29 20:42:26"}
]
Но мои проблема заключается в следующем: когда пользователь хочет задать новый вопрос в этом билете, как я могу вставить новый объект в этот массив следующим образом:
[
{"message_title":"This is title","message_body":"Some text ... .","type":"q","created_at":"2020\/02\/29 20:42:26"},
{"message_title":"Question 2","message_body":"Some text in question 2 ... .","type":"q","created_at":"2020\/02\/29 21:42:26"}
]
Мой код обновления:
$messages = array(
'message_body' => post('sendText'),
'type' => 'q',
'created_at' => date('Y/m/d H:i:s'),
);
$messagesToJson = json_encode($messages);
$updateQuery = DB::update("UPDATE synon_subsystem_ticketing
SET messages = JSON_SET(messages, '$[$countMessages]', '$messagesToJson') WHERE id = '$id'");