質問編集履歴

2 カスタムバリデーションのファンクションを追加

sunaczip

sunaczip score 11

2018/05/11 16:07  投稿

Laravel5.6:バリデーションuniqueを使った時のリダイレクト
### DB接続が失敗したときにDBエラーのページにリダイレクトさせたい
"mail" => ['unique:users,mail'],
というバリデーションロジックではDB接続が発生するが接続エラーになった場合にエラーページにリダイレクトさせたい
### 発生している問題・エラーメッセージ
try catchを入れようにもどこに書けばよいかわからない
また、ハンドラーで処理させようとしてもうまくエラーコードが取得できない
### 該当のソースコード
```ここに言語を入力  
public function rules()
   {
       return [
           'name' => ['required', 'string','max:30'],
           "mail" => ['required','unique:users,mail','max:60','email'],
           'gender' => ['required','integer','between:1,2'],
       ];
   }
```  
 
```ここに言語を入力  
    public function validateMailcheck($attribute, $value, $parameters){  
       try{  
           $count= Entry::where('mail',$value)->count();  
           //もしDBにそのメールアドレスが存在した場合にはelseに入る  
           if ($count == 0){  
               return true;  
           }else{  
               return false;  
           }  
       }catch (\Exception $e){  
           exit(redirect('entry/input')->withErrors(['systemError' => 'システムエラーが発生しました。お手数ですが登録を最初からやり直してください']));  
       }  
 
    }  
```  
### 試したこと
ここに問題に対して試したことを記載してください。
### 補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
  • Laravel 5

    3047 questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

1 コード詳細を記入しました

sunaczip

sunaczip score 11

2018/05/11 10:15  投稿

Laravel5.6:バリデーションuniqueを使った時のリダイレクト
### DB接続が失敗したときにDBエラーのページにリダイレクトさせたい
"mail" => ['unique:users,mail'],
というバリデーションロジックではDB接続が発生するが接続エラーになった場合にエラーページにリダイレクトさせたい
### 発生している問題・エラーメッセージ
try catchを入れようにもどこに書けばよいかわからない
また、ハンドラーで処理させようとしてもうまくエラーコードが取得できない
### 該当のソースコード
入力→確認フローの中でメールアドレスをuniqueチェックするという処理です
public function rules()
   {
       return [
           'name' => ['required', 'string','max:30'],
           "mail" => ['required','unique:users,mail','max:60','email'],
           'gender' => ['required','integer','between:1,2'],
       ];
   }
### 試したこと
ここに問題に対して試したことを記載してください。
### 補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
  • Laravel 5

    3047 questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る