Jul 15, 2020
0
Level 9
Unexpected data found. \r\n while trying to submit date in Laravel
In m Laravel-5.8, I am trying to used JQuery datepicker for my date:
Request Rules
public function rules()
{
return [
'holiday_name' => [
'required',
'min:3',
'max:80',
Rule::unique('hr_holiday_dates')->where(function ($query) {
return $query->where('group_id', $this->group_id)
->where('holiday_name', $this->holiday_name)
->where('holiday_date', Carbon::parse($this->holiday_date)->format('d-m-Y'));
})
],
'group_id' => [
'required'
],
'holiday_date' => [
'required',
'date',
'date_format:d-m-Y',
],
];
}
config/app.php
'date_format' => 'd/m/Y',
'date_format_js' => 'dd/mm/yy',
Model
use Carbon\Carbon;
class HrHolidayDate extends Model
{
protected $table = 'hr_holiday_dates';
protected $fillable = [
'holiday_name',
'holiday_date',
];
protected $dates = [
'holiday_date'
];
protected $casts = [];
public function setHolidayDateAttribute($input)
{
$this->attributes['holiday_date'] =
Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
}
public function getHolidayDateAttribute($input)
{
return Carbon::createFromFormat('Y-m-d', $input)
->format(config('app.date_format'));
}
}
Controller
public function store(StoreHolidayDateRequest $request)
{
if (! Gate::allows('holiday_date_create')) {
return abort(401);
}
try {
$holidayDate = Carbon::createFromFormat('d/m/Y', $request->holiday_date)->format('d-m-Y');
$holiday = HrHolidayDate::create([
'holiday_name' => $request->holiday_name,
'holiday_date' => $holidayDate,
]);
Session::flash('success', 'Holiday is created successfully');
return redirect()->route('hr.holiday_dates.index');
} catch (Exception $exception) {
Session::flash('error', 'Action failed! Please try again');
return redirect()->route('hr.holiday_dates.index');
}
}
view
<div class="col-sm-4">
<div class="form-group">
<label>Holiday:<span style="color:red;">*</span></label>
<input type="text" name="holiday_name" placeholder="Enter holiday here" class="form-control" value="{{old('holiday_name')}}">
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label>Holiday Date:<span style="color:red;">*</span></label>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="far fa-calendar-alt"></i></span>
</div>
<input type="text" class="form-control holiday_date" placeholder="dd/mm/yyyy" readonly autocomplete="off" name="holiday_date" value="{{old('holiday_date')}}" >
</div>
</div>
</div>
<div class="card-footer">
<button type="submit" id="submit_create" class="btn btn-primary">Save</button>
</div>
<script src="{{ asset('theme/adminlte3/plugins/jquery/jquery.js') }}"></script>
<script src="{{ asset('theme/adminlte3/plugins/jquery-ui/jquery-ui.js') }}"></script>
<script type="text/javascript">
$(function () {
$( '.holiday_date' ).datepicker({
dateFormat: 'dd-mm-yy',
changeMonth: true,
changeYear: true,
showAnim: 'slideDown',
duration: 'fast',
yearRange: new Date().getFullYear() + ':' + new Date().getFullYear(),
});
});
</script>
When I submitted, I got this error:
Unexpected data found. \r\n
#file: "C:\xampp\htdocs\laravelapp\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php"
How do I resolve it?
Thank you
Please or to participate in this conversation.