Yigitcanakkaya
Takvimde isInvalidDate şeklinde bir yöntem var. Sadece istediğiniz tarihlerin seçilmesine ya da seçilmemesine izin veriyor:
isInvalidDate: function (date) {
var d = date.format('YYYY-MM-DD');
var available = ['2020-04-06', '2020-04-07', '2020-04-08', '2020-04-09'];
return available.indexOf(d) > -1;
}
Bu üstteki koda göre kullanıcı sadece available dizisi içerisindeki tarihleri seçebilecek demek. O zaman size seçilebilir tarihlerden oluşan bir Javascript dizisi lazım.
Atıyorum üstte paylaştığınız tablo TourDate modeli olsun. Şu şekilde, isInvalidDate içinde kullandığımız tarih formatı ile dizi olarak alırsınız:
$available = TourDate::orderBy('start_date')
->pluck('start_date')
->map(function($startDate) {
return $startDate->format('d/m/Y');
})
->toArray();
Bunu şablona $available ismiyle gönderdiğinizi düşünelim. İlk gelen tarihin seçili gelme olayını da dahil edelim. O zaman bunu şablon içinde şu şekilde kullanabilirsiniz.
// Bunu üstte bir yerde global olarak ekleyin
var available = @json($available);
//...
$('.has-daterangepicker').daterangepicker({
"locale": {
"format": "DD/MM/YYYY"
},
"startDate": available[0],
"isInvalidDate": function (date) {
var d = date.format('DD/MM/YYYY');
return available.indexOf(d) > -1;
}
});
Bu şekilde olabileceğini düşünüyorum. Buradan yola çıkmaya çalışın, kopyaladım yapıştırdım olmadı şeklinde geri dönmeyin.