質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

2回答

2536閲覧

laravel で 論理消去したユーザーをバリデーションから除外したい

ORyohei

総合スコア18

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2020/08/28 06:30

編集2020/08/28 07:28

laravelで新規登録をするときに、論理消去したユーザーのメールアドレスがバリデーションに引っかかるので、deleted_atがnulであるという条件を付け足したいのです。
バリデーションカスタマイズをしなければいけないのでしょうか。公式に書いてある以下の方法を試したのですがうまく行きませんでした。

追加のWHERE節を付け加える さらにクエリーの"where"節として追加の検索条件を付け加えることもできます。 'email' => 'unique:users,email_address,NULL,id,account_id,1' 上のルールでは、account_idが1のレコードのみuniqueチェックに使用されます。

試したコード

'email' => 'required|string||max:255|email|unique:users,deleted_at,NULL',

何か見落としているところはありますでしょうか。

バージョンはlaravel5.8です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/08/28 06:43

Laravelのバージョンは幾つでしょうか。 5系であれば4年前ですが私にとっては「ピンとくる情報」が見つかりました。 もちろんバージョンも違うし記事も古いし参考になりづらいものではありますが、どういう「キーワード」「参考記事」「試行」をした上で「ピンとこない」のか具体的に記載してください。 「調べた」しか書いてないと他者には調べてないのと同じです。
ORyohei

2020/08/28 08:20

m.ts10806さん、ご回答ありがとうございます。無事解決出来ました
guest

回答2

0

自己解決

1,DBデータのemailについてるユニークを取る。
2,以下を追加

'email' => [ 'required', 'string', 'email', 'max:255', Rule::unique('users', 'email')->whereNull('deleted_at'), ],

投稿2020/08/28 08:19

ORyohei

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

phper.k

2020/08/28 09:09

ログイン機能に不具合をもたらすのでマイナス評価しました。
ORyohei

2020/08/28 12:38

ご指摘ありがとうございます。どういった不具合が確認出来ましたでしょうか。まだまだ初心者でご先輩の知識をお借りしたいです。
phper.k

2020/08/29 01:55 編集

同じメールアドレスでの二重登録が可能になってしまう。 ログインにはメールアドレスとパスワードを使うため、メールアドレスがユニークであることを前提とした仕組みである以上、ログインに不具合をもたらします。
ORyohei

2020/08/29 02:26

ご回答ありがとうございます。確かにその通りです。もう一度マニュアルを読んでやり直してみたいとおもいます。
guest

0

こちらに書かれている方法を試してください。

https://readouble.com/laravel/7.x/ja/validation.html

投稿2020/08/28 06:57

phper.k

総合スコア3923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/08/28 07:49

>バージョンはlaravel5.8です。 だそうですので。
phper.k

2020/08/28 07:52

質問者はちゃんとマニュアル読んでいるんだろうか? deleted_at が null の物を「除外」したら、そりゃあうまくいかないわな
m.ts10806

2020/08/28 08:02

回答編集したら良いかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問