#php #mysql #laravel #eloquent
#php #mysql #laravel #красноречивый
Вопрос:
- Ниже приведен запрос mysql, который отлично работает в mysql
UPDATE call_queue SET missed_interpreter_ids = JSON_ARRAY_INSERT(missed_interpreter_ids, '$[20]', CONVERT(2, char)) WHERE id = 58;
- Тот же запрос, который я пытаюсь написать в laravel, как показано ниже
$data['provider_id']=$provider['id'];
$data['missed_interpreter_ids']=DB::raw("JSON_ARRAY_INSERT(missed_interpreter_ids, '$[20]', CONVERT($interpreter_id, char))");
$call_id=DB::table("xxx")->where('id',$callqueue_id)->update($data);
return $call_id;
- Но этот приведенный выше запрос laravel, который я написал, создает
"message": "Array to string conversion",
"exception": "ErrorException",
"file": "C:\xampp\htdocs\laravel-web\app\Provider.php",
"line": 118
Комментарии:
1. сначала вам нужно преобразовать массив в строку. Использование
json_encode($array)
2. @deepesh: спасибо за предложение, можете ли вы помочь мне исправить приведенный выше код, который я написал: UPDATE call_queue SET missed_interpreter_ids = JSON_ARRAY_INSERT(missed_interpreter_ids, ‘$ [20]’, CONVERT(2, char)) ГДЕ id = 58;
3. у меня есть цикл, и значения должны вставляться в json одно за другим
Ответ №1:
эта проблема была исправлена, я только сейчас увидел, что передаю массив вместо значения. Спасибо за помощь