質問編集履歴

2

追記

2020/05/01 04:32

投稿

Millennium
Millennium

スコア5

test CHANGED
File without changes
test CHANGED
@@ -296,6 +296,84 @@
296
296
 
297
297
  ### 補足情報(FW/ツールのバージョンなど)
298
298
 
299
+ いただいたご指摘をもとに、以下のように変更したところ、
300
+
301
+ Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, array given
302
+
303
+ とエラーが出てしまいました。
304
+
305
+ ```php
306
+
307
+ <?php
308
+
309
+
310
+
311
+ namespace App\Http\Controllers;
312
+
313
+
314
+
315
+ use App\Models\Person;
316
+
317
+ use App\Models\Book;
318
+
319
+ use Illuminate\Http\Request;
320
+
321
+ //Controller
322
+
323
+
324
+
325
+ public function store(Request $request)
326
+
327
+ {
328
+
329
+ $newdata=$request->input('new data');
330
+
331
+
332
+
333
+ $person=new Person;
334
+
335
+
336
+
337
+ $person->name=$newdata['person']['name'];
338
+
339
+ $person->text=$newdata['person']['text'];
340
+
341
+ $person->save();
342
+
343
+
344
+
345
+
346
+
347
+ foreach($newdata['book'] as $book)
348
+
349
+ {
350
+
351
+ $person->getBooks()->saveMany([
352
+
353
+ new Book([
354
+
355
+           'author'=>$book['author'],
356
+
357
+ 'title'=>$book['title'],
358
+
359
+ 'person_id'=>$person->person_id
360
+
361
+ ]);
362
+
363
+ }
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+ return view('home.create');
372
+
373
+ }
374
+
375
+ ```
376
+
299
377
 
300
378
 
301
379
  ここにより詳細な情報を記載してください。

1

修正

2020/05/01 04:31

投稿

Millennium
Millennium

スコア5

test CHANGED
File without changes
test CHANGED
@@ -214,9 +214,83 @@
214
214
 
215
215
  ### 試したこと
216
216
 
217
-
217
+ 下のようにコントローラーを修正したところ、person_idがNUllになっていてBooksテーブルにレコードを挿入できないとエラーが出ました。
218
+
218
-
219
+ ```php
220
+
221
+ <?php
222
+
223
+
224
+
225
+ namespace App\Http\Controllers;
226
+
227
+
228
+
219
- ここに問題に対して試したことを記載してください。
229
+ use App\Models\Person;
230
+
231
+ use App\Models\Book;
232
+
233
+ use Illuminate\Http\Request;
234
+
235
+ //Controller
236
+
237
+
238
+
239
+ public function store(Request $request)
240
+
241
+ {
242
+
243
+ $newdata=$request->input('new data');
244
+
245
+
246
+
247
+ $person=new Person;
248
+
249
+
250
+
251
+ $person->name=$newdata['person']['name'];
252
+
253
+ $person->text=$newdata['person']['text'];
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+ foreach($newdata['book'] as $book)
264
+
265
+ {
266
+
267
+ $person->getBooks()->saveMany([
268
+
269
+ new Book(['author'=>$book['author']]),
270
+
271
+ new Book(['title'=>$book['title']]),
272
+
273
+ new Book(['person_id'=>$person->person_id])
274
+
275
+ ]);
276
+
277
+ }
278
+
279
+
280
+
281
+ $person->save();
282
+
283
+
284
+
285
+ return view('home.create');
286
+
287
+ }
288
+
289
+ ```
290
+
291
+
292
+
293
+
220
294
 
221
295
 
222
296