###前提・実現したいこと
現在このような構造のJSONをLaravelで受け取り、BBBBという階層があればその内容をデータベースに保存するというプログラムを書いています。
それぞれの階層は送られてきたり送られてこなかったりするので、階層ごと(項目ごと)に有無の判定をしています
各項目AAAA・BBBB・CCCCはデータベースに入れるとき別々のテーブルに保存します。
各テーブルのデータが別々に送られてくればいいのですがBBBBのようにほかのテーブルに入れるデータにくっついてくる形で送られてくるものがあります
現在ネストされている階層、今回の場合はBBBBという項目の有無の判定ができなくて困っています
{ "AAAA":[{ "aaaa":"1", "BBBB":[{ "bbbb":"1" }] }], "CCCC":{ "cccc":"1c1c1c" } }
###発生している問題・エラーメッセージ
このようなプログラムの場合BBBBの階層になるとそもそもBBBBを認識しません
if ( $request["BBBB"] != NULL) { $AAAA = [ 'bbbb' => $request->input('BBBB.bbbb'), ]; DB::table('BBBB')->insert($BBBB); }
###試したこと
したのかいそうにアクセスするにはこのようにするのかと思い試したのですが、うまく行きませんでした
if ( $request["AAAA.BBBB"] != NULL) { echo 'BBBB'; }
入ってきた値をそのまま出力し、
dd($request); #content: "{"AAAA":[{"aaaa":"1","BBBB":[{"bbbb":"1"}]}]}"
となっていたので、オブジェクトを配列にすればいいのかと思い配列変換を試みましたがうまく希望する形式になりませんでした
$request = json_decode(json_encode($request), true); array:7 [▼ "attributes" => [] "request" => [] "query" => [] "server" => [] "files" => [] "cookies" => [] "headers" => [] ]
直接アクセスするにはと思い下記のようにもしましたができませんでした
$array = $request->AAAA[0]; dd($array); array:2 [▼ "aaaa" => "1" "BBBB" => array:1 [▶] ] $array = $request->AAAA[1]; dd($array); Undefined offset: 1
"{"AAAA":[{"aaaa":"1","BBBB":[{"bbbb":"1"}]}]}"
上記のような形式でくる場合BBBBは値なのでしょうか?
AAAAというテーブルとBBBBというテーブルのデータが今回のようにくっついてポストされる場合どのようにしたのかいそうに入ってくるBBBBテーブルの処理を書けばよいでしょうか?
###バージョン情報など
Laravel5.5
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。