###前提・実現したいこと
プログラミング初心者です。
2つ入力フォームにどちらか値があったらバリデーションを実行したいです。
<例> 入力フォーム('start') 〜 入力フォーム('end') <考えられるパターン> start true end false start false end true start true end true start false end false
###発生している問題・エラーメッセージ
現在のソースコードですと、どちらか片方がnullだとnullにもバリデーションが実行されてしまい、エラーメッセージが表示されます。
(前提として、もしnullの場合にはそれぞれ別設定している日付が入ります。start = 1970/01/01 end = 今日の日付など。)
###該当のソースコード
PHP
1Controler 2 3//バリデーション 4$rules = [ 5 'start' => 'date', 6 'end' => 'date', 7 ]; 8 9if (!is_null($request['start']) && !is_null($request['end']))){ 10 $this->validate($request, $rules) 11}
PHP
1blade 2<input name="start" type="text" value="{{ $start }}" style="width: 100px;" placeholder="0000/00/00" /> 3<div class="text"> 〜 </div> 4<input name="end" type="text" value="{{ $end }}" style="width: 100px;" placeholder="0000/00/00" /> 5
###質問したいこと
・Laravelの$rulesで設定したバリデーションをstartのみ使用するということはできるのでしょうか。またその場合にはどのように書けば良いでしょうか。(質問の背景としてswitch文でどちらか片方がtrueのときにtrueのバリデーションを実行したいと思ったからです)
・if文の&&で繋いでいることが原因だと思っているのですが、解決策が自分の力では見つけられそうになかったのでご教授いただきたいです。(startとendを別々の条件分岐で記載してみましたがもう少し綺麗になるのではないか、他の方法があるのではないかと思っています)
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/27 10:20