質問編集履歴

5

解決した内容を記載

2019/05/15 09:15

投稿

YO14
YO14

スコア45

test CHANGED
File without changes
test CHANGED
@@ -252,32 +252,26 @@
252
252
 
253
253
 
254
254
 
255
- (5/12追記)
256
-
257
- ちら、現状まだ解決きておりません。自分で条件分岐を整理してみたのですが、
258
-
259
-
260
-
261
- ①もしPOSTされてき値が"WEB"だったら、checkedを印字する
262
-
263
- ②もしエラーが発生したとき
264
-
265
- -直前の値WEBだったら(直前の値が存在したら)、checked
266
-
267
- -直前の値が空だったら、チェックは入らない(POSTされてきた値がWEBであった場合、値を空で上書き)
268
-
269
- ③もしエラーが発生しておらず、
270
-
271
- -直前の値がWEBだったら(直前の値が存在したら)、checked
272
-
273
-     -直前の値が空だったら、checkedを出さない
274
-
275
-
276
-
277
- と、ifが大量かつifの中にifが入れ子になるような分岐になってしまい、上手く記述できません。
278
-
279
- また、お二人の方から回答をいただいておりますが、判定にarrayを使うような書き方をされており、私の手元のコードにどう反映すればよいか分かりません。
280
-
281
- 元々配列の中の値としてPOSTされてきているものを更に配列に入れる…???と新たな疑問が出てきてしまい、先へ進めなくなってしまいました。
282
-
283
- 引き続き、どなたかもう少しかみ砕いたご回答をいただけると大変有難く存じます。よろしくお願いいたします。
255
+ (5/15追記)
256
+
257
+ 以下のように書き換えるで、
258
+
259
+ ・エラーが無く、テーブルの値を参照した際、値が"WEB"であった場合には、チェックボックスはchecked
260
+
261
+
262
+
263
+ ・他の項目でエラーが発生した際、チェックボックスにチェックを入れていた場合(=直前の値が"WEB"であった場合)、チェックボックスはchecked
264
+
265
+ とすることできました
266
+
267
+ # ソースコード(edit.blade.php)
268
+
269
+ ```PHP
270
+
271
+ <label>
272
+
273
+ <input type="checkbox" name="media1" value="WEB" {{(!$errors->has('*') && $info['media1']== "WEB") || old('media1') == "WEB" ? 'checked' : ''}} >WEB <!--DBの値がvalueに入る。更にその内容次第で、チェックボックス選択済みに -->
274
+
275
+ </label>
276
+
277
+ ```

4

現状の追記

2019/05/15 09:15

投稿

YO14
YO14

スコア45

test CHANGED
File without changes
test CHANGED
@@ -249,3 +249,35 @@
249
249
 
250
250
 
251
251
  Laravelにお詳しい方、お知恵をお貸しいただけると有難く存じます。よろしくお願いいたします。
252
+
253
+
254
+
255
+ (5/12追記)
256
+
257
+ こちら、現状まだ解決できておりません。自分で、条件分岐を整理してみたのですが、
258
+
259
+
260
+
261
+ ①もしPOSTされてきた値が"WEB"だったら、checkedを印字する
262
+
263
+ ②もしエラーが発生したとき
264
+
265
+ -直前の値がWEBだったら(直前の値が存在したら)、checked
266
+
267
+ -直前の値が空だったら、チェックは入らない(POSTされてきた値がWEBであった場合、値を空で上書き)
268
+
269
+ ③もしエラーが発生しておらず、
270
+
271
+ -直前の値がWEBだったら(直前の値が存在したら)、checked
272
+
273
+     -直前の値が空だったら、checkedを出さない
274
+
275
+
276
+
277
+ と、ifが大量かつifの中にifが入れ子になるような分岐になってしまい、上手く記述できません。
278
+
279
+ また、お二人の方から回答をいただいておりますが、判定にarrayを使うような書き方をされており、私の手元のコードにどう反映すればよいか分かりません。
280
+
281
+ 元々配列の中の値としてPOSTされてきているものを更に配列に入れる…???と新たな疑問が出てきてしまい、先へ進めなくなってしまいました。
282
+
283
+ 引き続き、どなたかもう少しかみ砕いたご回答をいただけると大変有難く存じます。よろしくお願いいたします。

3

テーブル定義、insert文追記

2019/05/12 14:21

投稿

YO14
YO14

スコア45

test CHANGED
File without changes
test CHANGED
@@ -164,6 +164,76 @@
164
164
 
165
165
  ```
166
166
 
167
+ #テーブル定義
168
+
169
+ ```SQL
170
+
171
+ CREATE TABLE articles (
172
+
173
+ id int(10) unsigned NOT NULL AUTO_INCREMENT,
174
+
175
+ name varchar(255) NOT NULL,
176
+
177
+ email varchar(255) NOT NULL,
178
+
179
+ age int(11) unsigned,
180
+
181
+ area varchar(255) NOT NULL,
182
+
183
+ gender int(2) unsigned,
184
+
185
+ media1 varchar(255),
186
+
187
+ media2 varchar(255),
188
+
189
+ note varchar(255) NOT NULL,
190
+
191
+ image varchar(255) NOT NULL,
192
+
193
+ created_at timestamp NOT NULL default
194
+
195
+ current_timestamp,
196
+
197
+ updated_at timestamp NOT NULL default
198
+
199
+ current_timestamp
200
+
201
+ on update current_timestamp,
202
+
203
+ primary key(id)) ENGINE=InnoDB CHARSET=utf8;
204
+
205
+ ```
206
+
207
+ # insert文
208
+
209
+ ```PHP
210
+
211
+ $info = array(
212
+
213
+ 'name' => $request->name,
214
+
215
+ 'email' => $request->email,
216
+
217
+ 'age' => $request->age,
218
+
219
+ 'area' => $request->area,
220
+
221
+ 'gender' => $request->gender,
222
+
223
+ 'media1' => $request->media1,
224
+
225
+ 'media2' => $request->media2,
226
+
227
+ 'note' => $request->note,
228
+
229
+ 'image' => $request->image,
230
+
231
+ );
232
+
233
+ Article::insert($info);
234
+
235
+ ```
236
+
167
237
 
168
238
 
169
239
  DBの値の表示が優先されているようで、どのように記述すればoldの値がvalueに入れられるか分かりません。

2

ソースコード追記

2019/05/09 03:59

投稿

YO14
YO14

スコア45

test CHANGED
File without changes
test CHANGED
@@ -102,6 +102,70 @@
102
102
 
103
103
 
104
104
 
105
+ #ソースコード(ArticlesController.php)
106
+
107
+ ```PHP
108
+
109
+ /**
110
+
111
+ * Display a listing of the resource.
112
+
113
+ *
114
+
115
+ * @return \Illuminate\Http\Response
116
+
117
+ */
118
+
119
+ public function send_data($id) //編集画面にデータを送る
120
+
121
+ {
122
+
123
+ $info = Article::find($id);
124
+
125
+ return view('article/edit', ['info' => $info]);
126
+
127
+ }
128
+
129
+
130
+
131
+
132
+
133
+ ```
134
+
135
+
136
+
137
+ # ソースコード(ArticleRequest.php)
138
+
139
+ ```PHP
140
+
141
+ /**
142
+
143
+ * Get the validation rules that apply to the request.
144
+
145
+ *
146
+
147
+ * @return array
148
+
149
+ */
150
+
151
+ public function rules()
152
+
153
+ {
154
+
155
+ return [
156
+
157
+ 'name' => 'required'
158
+
159
+ ];
160
+
161
+ }
162
+
163
+ }
164
+
165
+ ```
166
+
167
+
168
+
105
169
  DBの値の表示が優先されているようで、どのように記述すればoldの値がvalueに入れられるか分かりません。
106
170
 
107
171
  また、上記ソースコードだと、

1

質問追記

2019/05/09 03:32

投稿

YO14
YO14

スコア45

test CHANGED
File without changes
test CHANGED
@@ -104,4 +104,14 @@
104
104
 
105
105
  DBの値の表示が優先されているようで、どのように記述すればoldの値がvalueに入れられるか分かりません。
106
106
 
107
+ また、上記ソースコードだと、
108
+
109
+ ・名前、年齢を正しく入力
110
+
111
+ ・温泉旅行にもチェック(カメラと温泉旅行両方にチェックが付いた状態)
112
+
113
+ して編集実行しても、温泉旅行がnullになってしまいます。
114
+
115
+
116
+
107
117
  Laravelにお詳しい方、お知恵をお貸しいただけると有難く存じます。よろしくお願いいたします。