#php #arrays #laravel
#php #массивы #laravel
Вопрос:
Как я могу добавить свои данные в свою базу данных, если данные выглядят следующим образом?
{"category_id":"1","topic_id":"1","scenario_id":"1","scoring":"0","nonscoring":"0"}{"category_id":"3","topic_id":"4","subtopic_id":"10","scoring":"0","nonscoring":"0"}
Я не знаю, что делать, кто-нибудь может мне помочь?
Вот код, который у меня есть на данный момент.
public function store(Request $request)
{
$set_components = $request->get('set_components');
foreach($set_components as $key => $value ) {
$components[] = [
'set_id' => 1,
'category_id' => ,
'topic_id' =>,
'subtopic_id' => ,
'scenario_id' => ,
'scoring' =>,
'non_scoring' => ,
'created_by' => Auth::user()->id
];
}
Set_component::insert($components);
return response()->json([
'success'=>$set_components
]);
}
Я просто не знаю, как я могу добавить этот ответ в свой цикл for, чтобы вставить его в свою базу данных.
Любая помощь будет очень признательна.
Комментарии:
1. расшифруйте строку json, затем получите доступ к ее содержимому. php.net/manual/en/function.json-decode.php
2. привет, сэр, у меня эта ошибка
json_decode() expects parameter 1 to be string, array given
3. Ваша строка json будет находиться
$value
внутриforeach
. Вот где вам нужно расшифровать. Кроме того, я думаю, вам нужно будет объявить$component
как массив перед вызовомforeach
. Я отправлю сообщение в качестве ответа, если вы не смогли заставить его работать.4. можете ли вы показать мне, как это сделать, сэр?
5. я уже пытался его расшифровать, но я просто получаю сообщение об ошибке
json_decode() expects parameter 1 to be string, array given
«я действительно не знаю, что делать». 🙁
Ответ №1:
Вам нужно будет расшифровать ваш json. Попробуйте:
$components = [];
foreach($set_components as $key => $value ) {
//$value holds your json string
$decodedValue = json_decode($value);
$components[] = [
'set_id' => 1,
'category_id' => $decodedValue->category_id,
];
}
Комментарии:
1. привет, сэр,
Use of undefined constant JSON - assumed 'JSON' (this will throw an Error in a future version of PHP)
это ошибка, с которой я сталкиваюсь.2. Не могли бы вы обновить свой вопрос с помощью исправленного кода, пожалуйста?
3. это мой плохой сэр, все уже в порядке, сэр, спасибо за помощь, сэр, это действительно мне очень помогло!