質問編集履歴
5
解決した内容を記載
test
CHANGED
File without changes
|
test
CHANGED
@@ -252,32 +252,26 @@
|
|
252
252
|
|
253
253
|
|
254
254
|
|
255
|
-
(5/1
|
256
|
-
|
257
|
-
こ
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
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
現状の追記
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文追記
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
ソースコード追記
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
質問追記
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にお詳しい方、お知恵をお貸しいただけると有難く存じます。よろしくお願いいたします。
|