質問: new FormData(); this.box.forEach(function(ele) { dataform.append('box[]', ele); }) ...省略 axios.post(path, dataform).then(res => { console.log('done') }).catch(function(error){ console.log(error) }) ``` ``` Laravel側に送られてくる値です $request->box => [ "[object Object]", "[object Object]", ] $request->box[0] => "[object Object]" ``` **this.boxの中身** ![this.boxの中身](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/ce7e788baafc7487c407296bcfb90dcf.png) **eleの中身** ![eleの中身](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/b0e2ca056509c9e723b0207308661396.png) 試したこと https://qiita.com/nicopinpin/items/cb3eb74440299e2e84f7 fileオブジェクトとedit_idを持った要素をlaravel側で受け取ることができません。 **送信の仕方に問題**があるかと思いましたが、解決策が見つからない状態です。 どなたかお分かりになる方居ましたら、知恵を貸していただきたいです。 よろしくお願いします。 ### 以下追記です。 console.log(dataform.getAll('box[]'))の結果です。 dataformの中身で既にobjectになっているので、やはりappendの部分が怪しいかと思います。 ![dataformのboxの中身](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/689dfc3ed106a8ccc9e1f8408357e36e.png) ``` こんな感じで渡すと下記の写真の様になります。値は入るが、1つのオブジェクトにまとめて入れることが出来ない、といった感じです。 dataform.append('box[]', ele.edit_id); dataform.append('box[]', ele.image); ``` ![別々で渡すと](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/5ae48c3c0605102c4b518c378f15c1f4.png) ``` dataform.append('box', JSON.stringify(ele)); 上記で送りましたが、json_decodeで正しく受け取れません。文字列が多すぎて、カラム名を選択して呼べない状態でした。(自分の理解力が低く正しくできていない可能性あり) ```
回答: boxと言う箱を作って、写真のファイル名を追加する。編集の場合には追加で元の写真のidを追加しておく。 下記の様に実装するといけました。 ``` data() { return {, box: [], } }, // boxに追加 let test = { file_name: edit_image.name, edit_id: img.id } ...省略 this.box.push(test) this.box.forEach(function(ele, i) { let koko = JSON.stringify(ele) dataform.append('box[]', koko); }) ``` fileオブジェクトは他の情報と一緒におくれないんですね。学びになりました。