回答編集履歴

1

追記

2019/01/10 00:53

投稿

mix-peach
mix-peach

スコア1910

test CHANGED
@@ -19,3 +19,61 @@
19
19
  これでうまくいくならば、
20
20
 
21
21
  HogeRequestクラス内で、merge()をオーバーライドするか、オリジナルのmerge代理関数を作成するかで、そちらに処理をまとめておけば、HogeRequestを使うたびに```merge()```と```flash()```をセットで記述しなくて済むので、良さそうです。
22
+
23
+
24
+
25
+ ---
26
+
27
+
28
+
29
+ コメントみましたので、追記です。
30
+
31
+
32
+
33
+ なるほど。newで作ったReqeustクラスではセッションが使えないようなら、
34
+
35
+ Controllerに渡されてきたRequestクラスの方で行うのではどうでしょうか?
36
+
37
+
38
+
39
+ ```
40
+
41
+ public function xxx(Request $request){
42
+
43
+
44
+
45
+ $request->merge(['hoge' => 'aaa']);
46
+
47
+ $request->flash();//こちらでも一応やっておく・・・
48
+
49
+
50
+
51
+ $data = $request->all();
52
+
53
+
54
+
55
+ $hogeRequest = new HogeRequest();
56
+
57
+ $hogeRequest->merge($data);
58
+
59
+ $hogeRequest->validate($hogeRequest->rules());
60
+
61
+
62
+
63
+ }
64
+
65
+ ```
66
+
67
+ こちらなら記載のエラーが出ることは無いはずです。
68
+
69
+
70
+
71
+ ところで、ちょっと話が変わりますが、
72
+
73
+ せっかく作った```HogeRequest```は、FormRequestとしては使わない(あるいは使えない)理由があるのでしょうか?
74
+
75
+
76
+
77
+ FormRequestとして使えば、一度受け取った```$request```を、新規で作った```HogeRequest```にマージする・・という作業を都度しなくて済みますし、自分で```validate()```関数を呼び出す必要もありません。
78
+
79
+ 普通のRequestクラスとも相違なく使えるので、Validation処理の共通化としてはこちらの方が良いような気がするのですが・・・?