私はLaravel 4 &カーボンで奇妙な検証問題に遭遇しています。ラーベル、カーボン、およびバリデーション
私はいくつかの必要な一般的なフィールド(ドロップダウンとテキストフィールドの2つ)を持つフォームを持っていて、一連の日付は必要ではない&のフィールドです。
最初の3つのフィールドが必要で、date/timeフィールドが 'date_format:Y-m-d H:i'(ここでは秒ではありません)に設定されています。
下記の「airline_open」、「airline_close」、「hotel_open」、「hotel_close」の各フィールドが問題を引き起こすフィールドです。
必須のフィールドが入力されている限り、すべて正常に機能します。必要なフィールドが入力されておらず、日付/時刻フィールドが入力されていない場合は、適切なメッセージが表示されます。しかし、必要なフィールドのいずれかが記入されておらず、日付/時刻フィールドのいずれかが期待されるフォーマット(秒ではない)で埋められている場合、私はCarbonによって例外がスローされます。 (私は時間のために秒を含める場合興味深いことに、それは例外をスローしますが、検証エラーを与えていません。)
この例外は、この問題に似ているようだ:Laravel Carbon Data Missing
しかし、ことを考えます必要なフィールドが埋め尽くされている限り、すべてが設計どおりに動作します。私は、Carbonの日付フォーマットを混乱させることなくこの作業を行うことができるはずです。
アイデア?
いくつかのコードを追加:
バリ:フォーム(airline_open & airline_closeフィールド)から
'direction' => 'required',
'type' => 'required',
'notes' => 'required',
'callback_time' => 'date_format:H:i',
'callback_time2' => 'required_if:callback_type, 4|date_format:H:i',
'airline_open' => 'date_format:Y-m-d H:i',
'airline_close' => 'date_format:Y-m-d H:i',
'hotel_open' => 'date_format:Y-m-d H:i',
'hotel_close' => 'date_format:Y-m-d H:i'
);
。 「今」ボタンが希望の形式で日付&時間でフィールドを埋めるために、いくつかのJSを呼び出します。
<tr class="airline-reservation @if ($data->airline_reservation == 0) _hide @endif">
<td width="25%">{{ trans('nationalbank.call.form.open') }}:</td>
<td width="25%">
<input type="text" class="form-control" name="airline_open" id="airline_open" @if ($data->airline_open > 0)) value="{{ Carbon\Carbon::createFromFormat('Y-m-d H:i:s',$data->airline_open)->format('Y-m-d H:i') }}" @endif size="30">
<a href="javascript:;" class="btn btn-info btn-xs nowbtn" id="now-airline_open">now</a>
</td>
<td width="25%">{{ trans('nationalbank.call.form.close') }}:</td>
<td width="25%">
<input type="text" class="form-control" name="airline_close" id="airline_close" @if ($data->airline_close > 0)) value="{{ Carbon\Carbon::createFromFormat('Y-m-d H:i:s',$data->airline_close)->format('Y-m-d H:i') }}" @endif size="30">
<a href="javascript:;" class="btn btn-info btn-xs nowbtn" id="now-airline_close">now</a>
</td>
</tr>
コードを表示してください。 –
また、フィールドの検証とフォーマットを変更して秒を含むように変更しても、フィールドの時刻から秒を削除すると、例外がスローされます。ガベージ(非日付/時刻のテキスト)を入力すると、予期したとおりに検証エラーが発生しますが、「不完全な」日付/時刻(たとえば、時間を削除して日付を残すなど)では例外がスローされます。 –
正確なエラーを投稿してください。このエラーは、日付の保存ではなく、日付の検証と関係している可能性があります。 –