回答編集履歴

2

参考URLの追加

2017/06/14 07:37

投稿

watanuki_p
watanuki_p

スコア45

test CHANGED
@@ -80,6 +80,6 @@
80
80
 
81
81
 
82
82
 
83
- vender以下のコードなのでおそらくgit管理外ですが、こうすれば特定の注入にソフトデリートされたデータを含めることができます。
83
+ vender以下のコードなのでおそらくgit管理外ですが、こうすれば特定の注入にソフトデリートされたデータを含めることができます。 参考: [Rewrite Vendor Class](https://laracasts.com/discuss/channels/general-discussion/rewrite-vendor-class)
84
84
 
85
85
 

1

追記です

2017/06/14 07:37

投稿

watanuki_p
watanuki_p

スコア45

test CHANGED
@@ -31,3 +31,55 @@
31
31
  こうしておけば削除済みのページを見れるユーザーをミドルウェアで制限したりするのも簡単です。
32
32
 
33
33
  基本的にソフトデリートは `削除` です。削除されてないデータとは明確に処理を分けたほうが良いように思いますし、頻繁にこのようなコードを書く必要が有る場合はソフトデリートではなく、staffにステータスを持たせて管理方法を変えたほうがいいかもしれません。
34
+
35
+
36
+
37
+ ## 追記
38
+
39
+
40
+
41
+ どうしても注入したいのであれば、 `ImplicitRouteBinding.php` の `resolveForRoute` メソッドを改造します。
42
+
43
+
44
+
45
+ ```php
46
+
47
+ public static function resolveForRoute($container, $route)
48
+
49
+ {
50
+
51
+ // ...略
52
+
53
+
54
+
55
+ // ホワイトリスト (実際ではハードコーディングは避けたほうが吉)
56
+
57
+ if ($route->action['controller'] == 'App\Http\Controllers\StaffController@show') {
58
+
59
+ $route->setParameter($parameterName, $model->where(
60
+
61
+ $model->getRouteKeyName(), $parameterValue
62
+
63
+ )->withTrashed()->firstOrFail());
64
+
65
+ } else {
66
+
67
+ $route->setParameter($parameterName, $model->where(
68
+
69
+ $model->getRouteKeyName(), $parameterValue
70
+
71
+ )->firstOrFail());
72
+
73
+ }
74
+
75
+ }
76
+
77
+ }
78
+
79
+ ```
80
+
81
+
82
+
83
+ vender以下のコードなのでおそらくgit管理外ですが、こうすれば特定の注入にソフトデリートされたデータを含めることができます。
84
+
85
+