質問するログイン新規登録

質問編集履歴

2

追記

2020/05/01 04:32

投稿

Millennium
Millennium

スコア5

title CHANGED
File without changes
body CHANGED
@@ -147,5 +147,44 @@
147
147
 
148
148
 
149
149
  ### 補足情報(FW/ツールのバージョンなど)
150
+ いただいたご指摘をもとに、以下のように変更したところ、
151
+ Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, array given
152
+ とエラーが出てしまいました。
153
+ ```php
154
+ <?php
150
155
 
156
+ namespace App\Http\Controllers;
157
+
158
+ use App\Models\Person;
159
+ use App\Models\Book;
160
+ use Illuminate\Http\Request;
161
+ //Controller
162
+
163
+ public function store(Request $request)
164
+ {
165
+ $newdata=$request->input('new data');
166
+
167
+ $person=new Person;
168
+
169
+ $person->name=$newdata['person']['name'];
170
+ $person->text=$newdata['person']['text'];
171
+ $person->save();
172
+
173
+
174
+ foreach($newdata['book'] as $book)
175
+ {
176
+ $person->getBooks()->saveMany([
177
+ new Book([
178
+           'author'=>$book['author'],
179
+ 'title'=>$book['title'],
180
+ 'person_id'=>$person->person_id
181
+ ]);
182
+ }
183
+
184
+
185
+
186
+ return view('home.create');
187
+ }
188
+ ```
189
+
151
190
  ここにより詳細な情報を記載してください。

1

修正

2020/05/01 04:31

投稿

Millennium
Millennium

スコア5

title CHANGED
File without changes
body CHANGED
@@ -106,9 +106,46 @@
106
106
  ```
107
107
 
108
108
  ### 試したこと
109
+ 下のようにコントローラーを修正したところ、person_idがNUllになっていてBooksテーブルにレコードを挿入できないとエラーが出ました。
110
+ ```php
111
+ <?php
109
112
 
110
- ここに問題に対して試したことを記載してください。
113
+ namespace App\Http\Controllers;
111
114
 
115
+ use App\Models\Person;
116
+ use App\Models\Book;
117
+ use Illuminate\Http\Request;
118
+ //Controller
119
+
120
+ public function store(Request $request)
121
+ {
122
+ $newdata=$request->input('new data');
123
+
124
+ $person=new Person;
125
+
126
+ $person->name=$newdata['person']['name'];
127
+ $person->text=$newdata['person']['text'];
128
+
129
+
130
+
131
+
132
+ foreach($newdata['book'] as $book)
133
+ {
134
+ $person->getBooks()->saveMany([
135
+ new Book(['author'=>$book['author']]),
136
+ new Book(['title'=>$book['title']]),
137
+ new Book(['person_id'=>$person->person_id])
138
+ ]);
139
+ }
140
+
141
+ $person->save();
142
+
143
+ return view('home.create');
144
+ }
145
+ ```
146
+
147
+
148
+
112
149
  ### 補足情報(FW/ツールのバージョンなど)
113
150
 
114
151
  ここにより詳細な情報を記載してください。