0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】NGワードはRequest、削除パスワードはServiceに書く理由

0
Posted at

問題

NGワードはカスタムバリデーションなのに
なぜ、
削除パスワードチェックはなぜServiceなの?

判断基準 = 投稿によって判定結果が変わるか?

比較表

NGワード 削除パスワード
① 投稿によって結果が変わる? ❌ 変わらない ✅ 変わる
② 判定は値単体に近い?
③ ユースケース依存?
④ 書く場所 Request Service

解説:

① 投稿によって結果が変わる?

NGワード

「バカ」という文字は
どの投稿でもNG。

判定は常に同じ。

削除パスワード

投稿Aの正解は「1234」
投稿Bの正解は「9999」

投稿ごとに結果が変わる。

② 判定は値単体に近い?

NGワード

入力値 vs NGワード一覧

→ ほぼ「値のチェック」。

削除パスワード

入力値 vs その投稿のpassword

→ 投稿という対象が必要。
 値だけでは判断できない。

③ ユースケース依存?

NGワード

投稿でもコメントでも
同じルールで使える。

操作に依存していない。

削除パスワード

「削除」という操作のときだけ必要。

完全にユースケース依存。

結論

▪️値の正しさをチェックする → Request(バリデーション)

▪️操作していいかをチェックする → Service(ビジネスロジック)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?