回答編集履歴

8

冗長

2019/01/24 10:38

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  Client::make($request->only('name', 'body'))
40
40
 
41
- ->fill(['month' => implode(', ', (array)($request->months ?? []))])
41
+ ->fill(['month' => implode(', ', $request->months ?? [])])
42
42
 
43
43
  ->save();
44
44
 
@@ -134,7 +134,7 @@
134
134
 
135
135
  {!! Form::hidden('name', $request->name) !!}
136
136
 
137
- @foreach ((array)($request->months ?? []) as $key => $value)
137
+ @foreach ($request->months ?? [] as $key => $value)
138
138
 
139
139
  {!! Form::hidden("months[$key]", $value) !!} <!-- ← ここで配列にしていなかったのが根本的な原因 -->
140
140
 
@@ -152,7 +152,7 @@
152
152
 
153
153
  <li>{{ $request->name }}</li>
154
154
 
155
- <li>{{ implode(', ', (array)($request->months ?? [])) }}</li>
155
+ <li>{{ implode(', ', $request->months ?? []) }}</li>
156
156
 
157
157
  <li>{!! nl2br(e($request->body)) !!}</li>
158
158
 

7

修正

2019/01/24 10:38

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  Client::make($request->only('name', 'body'))
40
40
 
41
- ->fill(['month' => implode(', ', (array)$months)])
41
+ ->fill(['month' => implode(', ', (array)($request->months ?? []))])
42
42
 
43
43
  ->save();
44
44
 

6

修正&リファクタ

2019/01/24 10:36

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  return view('client.confirm')
24
24
 
25
- ->with($request->only('name', 'body', 'months'));
25
+ ->with(compact('request'));
26
26
 
27
27
  }
28
28
 
@@ -132,15 +132,15 @@
132
132
 
133
133
 
134
134
 
135
- {!! Form::hidden('name', $name) !!}
135
+ {!! Form::hidden('name', $request->name) !!}
136
136
 
137
- @foreach ((array)$months as $key => $value)
137
+ @foreach ((array)($request->months ?? []) as $key => $value)
138
138
 
139
139
  {!! Form::hidden("months[$key]", $value) !!} <!-- ← ここで配列にしていなかったのが根本的な原因 -->
140
140
 
141
141
  @endforeach
142
142
 
143
- {!! Form::hidden('body', $body) !!}
143
+ {!! Form::hidden('body', $request->body) !!}
144
144
 
145
145
 
146
146
 
@@ -150,11 +150,11 @@
150
150
 
151
151
  <ul>
152
152
 
153
- <li>{{ $name }}</li>
153
+ <li>{{ $request->name }}</li>
154
154
 
155
- <li>{{ implode(', ', (array)$months) }}</li>
155
+ <li>{{ implode(', ', (array)($request->months ?? [])) }}</li>
156
156
 
157
- <li>{!! nl2br(e($body)) !!}</li>
157
+ <li>{!! nl2br(e($request->body)) !!}</li>
158
158
 
159
159
  </ul>
160
160
 

5

修正

2019/01/24 10:34

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  if ($request->action === '確定') {
38
38
 
39
- Client::make($request->only('name', 'body')
39
+ Client::make($request->only('name', 'body'))
40
40
 
41
41
  ->fill(['month' => implode(', ', (array)$months)])
42
42
 

4

修正

2019/01/24 10:23

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -36,7 +36,11 @@
36
36
 
37
37
  if ($request->action === '確定') {
38
38
 
39
- Client::create($request->only('name', 'month', 'body'));
39
+ Client::make($request->only('name', 'body')
40
+
41
+ ->fill(['month' => implode(', ', (array)$months)])
42
+
43
+ ->save();
40
44
 
41
45
  return redirect('/client/list');
42
46
 

3

修正

2019/01/24 10:22

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -1,14 +1,88 @@
1
+ ```
2
+
3
+ // 追加ページ
4
+
1
- この機能使ったことなくてエアプ回答ですが…
5
+ public function create()
6
+
7
+ {
8
+
9
+ // 配列が入っているなら Client::$month も Client::$months の複数形にしたほうが混乱が少ないかも
10
+
11
+ return view('client.create', ['months' => Client::$month]);
12
+
13
+ }
14
+
15
+
16
+
17
+ // 追加の確認
18
+
19
+ public function confirm(ClientRequest $request)
20
+
21
+ {
22
+
23
+ return view('client.confirm')
24
+
25
+ ->with($request->only('name', 'body', 'months'));
26
+
27
+ }
28
+
29
+
30
+
31
+ //追加の処理
32
+
33
+ public function store(ClientRequest $request)
34
+
35
+ {
36
+
37
+ if ($request->action === '確定') {
38
+
39
+ Client::create($request->only('name', 'month', 'body'));
40
+
41
+ return redirect('/client/list');
42
+
43
+ }
44
+
45
+
46
+
47
+ return redirect('/client/create')
48
+
49
+ ->withInput($request->except('action'));
50
+
51
+ }
52
+
53
+ ```
2
54
 
3
55
 
4
56
 
5
57
  ```
6
58
 
59
+ <form class="" action="{{ url('/client/confirm') }}" method="post">
60
+
61
+ {{ csrf_field() }}
62
+
63
+
64
+
65
+ <p>
66
+
67
+ {!! Form::text('name', old('name'), ['placeholder' => '名前']) !!}
68
+
69
+ @if ($errors->has('name'))
70
+
71
+ <span class="error">{{ $errors->first('name') }}</span>
72
+
73
+ @endif
74
+
75
+ </p>
76
+
77
+
78
+
79
+ <p>
80
+
7
- @foreach($month as $key => $value)
81
+ @foreach ($months as $key => $value)
8
82
 
9
83
  <label class="checkbox-inline">
10
84
 
11
- {!! Form::checkbox('month[]', $value, old("month.$key")) !!}
85
+ {!! Form::checkbox("months[$key]", $value, old("months.$key")) !!}
12
86
 
13
87
  {{ $value }}
14
88
 
@@ -16,52 +90,78 @@
16
90
 
17
91
  @endforeach
18
92
 
19
- ```
93
+ </p>
20
94
 
21
95
 
22
96
 
97
+ <p>
98
+
99
+ {!! Form::textarea('body', old('body'), [
100
+
101
+ 'rows' => 8, 'cols' => 80, 'placeholder' => '本文',
102
+
23
- でどうですか?
103
+ ]) !!}
104
+
105
+ @if ($errors->has('body'))
106
+
107
+ <span class="error">{{ $errors->first('body') }}</span>
108
+
109
+ @endif
110
+
111
+ </p>
24
112
 
25
113
 
26
114
 
27
- ----
115
+ <input type="submit" value="登録">
28
116
 
29
-
30
-
31
- ## 追記
32
-
33
-
34
-
35
- ```php
36
-
37
- public function confirm(ClientRequest $request)
117
+ </form>
38
-
39
- {
40
-
41
- return view('client.confirm')->with($request->only('month', 'ClientName', 'ClientBody'));
42
-
43
- }
44
118
 
45
119
  ```
46
120
 
47
121
 
48
122
 
49
- ```php
123
+ ```
50
124
 
51
- @foreach($month as $key => $value)
125
+ <form class="" action="{{ url('/client') }}" method="post">
52
126
 
53
- <label class="checkbox-inline">
54
-
55
- {!! Form::checkbox("month[$key]", $value, old("month.$key")) !!}
56
-
57
- {{ $value }}
127
+ {{ csrf_field() }}
58
-
59
- </label>
60
-
61
- @endforeach
62
-
63
- ```
64
128
 
65
129
 
66
130
 
131
+ {!! Form::hidden('name', $name) !!}
132
+
133
+ @foreach ((array)$months as $key => $value)
134
+
135
+ {!! Form::hidden("months[$key]", $value) !!} <!-- ← ここで配列にしていなかったのが根本的な原因 -->
136
+
137
+ @endforeach
138
+
139
+ {!! Form::hidden('body', $body) !!}
140
+
141
+
142
+
67
- お試ください
143
+ の内容登録ます。
144
+
145
+
146
+
147
+ <ul>
148
+
149
+ <li>{{ $name }}</li>
150
+
151
+ <li>{{ implode(', ', (array)$months) }}</li>
152
+
153
+ <li>{!! nl2br(e($body)) !!}</li>
154
+
155
+ </ul>
156
+
157
+
158
+
159
+ <input type="submit" name="action" value="戻る">
160
+
161
+ <input type="submit" name="action" value="確定">
162
+
163
+
164
+
165
+ </form>
166
+
167
+ ```

2

only を追加

2019/01/24 10:21

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  {
40
40
 
41
- return view('client.confirm')->with($request->only('month'));
41
+ return view('client.confirm')->with($request->only('month', 'ClientName', 'ClientBody'));
42
42
 
43
43
  }
44
44
 

1

追記

2019/01/24 06:01

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -21,3 +21,47 @@
21
21
 
22
22
 
23
23
  でどうですか?
24
+
25
+
26
+
27
+ ----
28
+
29
+
30
+
31
+ ## 追記
32
+
33
+
34
+
35
+ ```php
36
+
37
+ public function confirm(ClientRequest $request)
38
+
39
+ {
40
+
41
+ return view('client.confirm')->with($request->only('month'));
42
+
43
+ }
44
+
45
+ ```
46
+
47
+
48
+
49
+ ```php
50
+
51
+ @foreach($month as $key => $value)
52
+
53
+ <label class="checkbox-inline">
54
+
55
+ {!! Form::checkbox("month[$key]", $value, old("month.$key")) !!}
56
+
57
+ {{ $value }}
58
+
59
+ </label>
60
+
61
+ @endforeach
62
+
63
+ ```
64
+
65
+
66
+
67
+ これでお試しください