0, 【募集】 0, 回答 4 / クリップ What is going on with this article? や、 $tests = DB::table('m_test')->select('main')->distinct()->orderBy('id', 'asc')->get(); $tests = DB::table('m_test')->select('main')->distinct()->orderBy('main', 'asc'); Laravelは入力されたデータに対するバリデーションのさまざまなアプローチを提供しています。Laravelの基本コントローラクラスはパワフルでバラエティー豊かなバリデーションルールを使いHTTPリクエストをバリデーションするために便利な手法を提供している、ValidatesRequestsトレイトをデフォルトで使用しています。 **/, // ここで重複値(staff_no、staff_code UNIQUE)を検証する設定方法を, // distinctで配列の重複チェック、$validate_funcでDBの存在チェック, //検証する前に、ループでバリデーションするデータ’staff_no_code’を作り、それを検証する。, https://qiita.com/katsunory/items/02693caf0e8c71d609ee. http://readouble.com/laravel/5/1/ja/validation.html#rule-exists 0, 回答 http://readouble.com/laravel/5/1/ja/validation.html#rule-unique, でもこれ、Eloquentモデルのほうでソフトデリート設定してたとしても、親切にデリートされたレコードを無視してくれるなんてことは無いみたいでチェック時に発行されるクエリは以下のようになります, 当然既に削除されているemail_addressがtest@example.comのレコードがあれば、uniqueルールは通りません。, うわー使えねー。と思うにはまだ早いです。uniqueルールには追加のWHERE節を付け加える事ができます。 2 / クリップ ※,column,!valueが指定できるのは5.2以降でした。 * $attribute: 検証中の属性名 詳細な説明はこちら 複数条件での絞り込みについてはAND検索であれば簡単です。 ... LaravelでorWhereを使って A and (B or C) の条件を作る方法 ... Mar 18,2016 Author: Mineo Okuda / 145,250 views. uniqueでも一緒とは書いてないけど。 By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. 1 / クリップ teratailを一緒に作りたいエンジニア, // database/migrations/UpdateUsersTable.php, //staff_noとstaff_code合わせて重複しました、ここでエラーを出したい。, // ここで重複値(staff_no、staff_code UNIQUE)を検証する設定方法をご教授お願い致します。, /** 目的:私が今回やろうとしたい事は、DBの重複行をまとめた際の順序を変えたい事です。削除ではなくまとめると言うことで、distinct()を使用しています。 DBは下記のような感じです idmain1test12test23test3~以下省略まとめるトコロまでは↓のソースでできたのですが、 - Controllerにintanceを作成しデータベースにデータを入れたいが、Class 'App\... 回答 https://qiita.com/katsunory/items/02693caf0e8c71d609ee, 参考できる回答がないので、自分でlaravelのバリデーションのDOCを読んでいるいる試しで出来ますた。, やり方としては、別にむつかしいじゃあないです。検証する前に検証するデータちょっといじるでそれを検証で感じ。 こんにちは!システムエンジニアのオオイシです。 sqlのdistinct(ディスティンクト)をご存知ですか?distinctの使い方を覚えると、select文の実行結果の重複レコード(データ行)を1つにまとめることができます。 この記事では、 distinctとは distinctの使い方 https://laravel.com/api/5.7/Illuminate/Foundation/Http/FormRequest.html#method_validationData, Laravel5.6 ユーザーupdateアクションでのフォームリクエスト適用について. 1 / クリップ ということでdleted_at,nullとか設定すると発行されるのは, ダメかーカスタムバリデーション作らなきゃダメかーと思いましたが、Laravelのソースコードは読みやすいと評判なのでダメ元で読んでみると, Illuminate\Validation\ValidatorのvalidateUniqueメソッドが呼ばれていて、追加条件の設定を追っていくと まぁそんなケース無いだろうけど。. 目的:私が今回やろうとしたい事は、DBの重複行をまとめた際の順序を変えたい事です。 http://readouble.com/laravel/5/1/ja/validation.html#rule-unique, http://readouble.com/laravel/5/1/ja/validation.html#rule-exists, you can read useful information later efficiently. 2, LaravelでMySQLで直接実行できるSQL分が「isn't in GROUP BY」エラー, 回答 * 検証用の関数 * $fail : 失敗時に呼び出すメソッド? Why not register and get more from Qiita? 削除ではなくまとめると言うことで、distinct()を使用しています。, ・解決方法として、orderByを使うのかなと思い、 0, 【募集】 極力DBからソート状態で取得することをおすすめします。, 1対多の関係にあるテーブル間で複数の検索条件に一致して重複してしまうレコードの抽出, ActiveRecoedで2つのカラムの組み合わせが一意になるようにレコードを取得したいです。, 回答 teratailを一緒に作りたいエンジニア. 0, 回答 ※また、column1,value1,column2,value2,...と続ければ複数個設定できる。 Help us understand the problem. 4 / クリップ 等、いろいろ試しましたが、エラーが出てしまいます。, teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。, 評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。, 上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。, distinct()はほとんど使いませんが自分が使ってる箇所調べるとpluck()してました。, ['test3', 'test1', 'test2']なCollectionが得られるのでこれをソートすればいいはずです。, mainでgroup byしてidのmin値(またはmax値?)でorder by かけてみては?, また、Collection取得後のソートは、件数が多くなるとパフォーマンスが悪くなるため、 評価を下げる理由を選択してください. Laravelのバリデーションにはuniqueという、指定したフィールドがテーブル内で一意であることをチェックする為のルールがあります。 ... 18. $tests = DB::table('m_test')->orderBy('id', 'asc')->select('main')->distinct()->get(); Illuminate\Validation\DatabasePresenceVerifierのaddWhereメソッドにたどり着きました。, その後見ていたらExistsルールのところに全部書いてあるじゃないですか。 https://readouble.com/laravel/5.7/ja/validation.html laravelデフォルトのユーザーテーブルに以下のUNIQUEカラムを追加しました, MassStoreUserRequest でこんな感じで設定しましたけど、欲しいバリデーション結果じゃあない。, teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。, 評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。, 上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。, こちらが参考になるとおもいます。 データstaff_no,staff_codeを繋げるでれは、配列の重複チェックもemailのように'distinct'でチェック出来ます、あとDBは自作の検証funcでstaff_no,staff_codeを繋げるでwhereできる。, 参考したウェブサイト 3 / クリップ ※また、column1,value1,column2,value2,...と続ければ複数個設定できる。 ... 以下雑記. $tests = DB::table('m_test')->select('main')->distinct()->orderBy('id', 'asc'); * $value : 検証中の属性の値 * DBの存在チェック,staff_no,staff_codeを繋げるで検証 まぁ結論はドキュメントちゃんと読めということですかね。, 文字列としてNULL、NOT_NULLを条件にしたい時はどうしたらいいんだ。 ※フィールドの値が、指定されたデータベーステーブルに存在することをバリデートするexistsルールも同様。, Laravelのバリデーションにはuniqueという、指定したフィールドがテーブル内で一意であることをチェックする為のルールがあります。 プログラミングに関係のない質問 やってほしいことだけを記載した丸投げの質問 問題・課題が含まれていない質問 意図的に内容が抹消された質問 過去に投稿した質問と同じ内容の質問 広告と受け取られるような投稿.