سلام دوستان.
من یه وب سایت نوبتدهی دارم، قسمتی که بیمار میخواد از دکتر نوبت بگیره به صورت زیر است:
حالا میخوام زمانی که کاربر مثلا روز یکشنبه ساعت 8 نوبت گرفت، ساعت 8 غیر فعال بشه و به همین ترتیب و در آخر مثلا زمانی که تمام ساعت های روز یکشنبه ثبت شد، هم روز یکشنبه غیرفعال بشه و هم ساعت هاش و اگر کاربر روز سه شنبه رو انتخاب کرد، ساعت هایی که رزرو نشده فعال باشن.
همچنین به عنوان مثال زمانی که کاربر ساعت 8 روز یکشنبه نوبت گرفت، ساعت 8 غیر فعال بشه و ساعت 8 فردا مجدد فعال بشه، در واقع هر کدوم از ساعت ها که غیر فعال شد، روز بعد ساعت 8 مجدد فعال بشه.
این کارو چطور باید انجام بدم؟
@arminrahmati999
سلام
یک راه ساده اینه که شما ساعتهای رزرو شده رو تو دیتابیس ذخیره کنی و در هر لحظه اونها رو از دیتابیس بگیری و اگر اون تایم در دیتابیس با اون تاریخ ثبت شده بود تگ html رو غیر فعال کنی
درود من باشم دو تا جدول میسازم یکی به نام دکتر - یکی دیگه به نام زمان دکتر ( مثلا چنین چیزهایی دو تا جدول تصور کن)
توی جدول زمان دکتر - هر سطرش این موارد رو میزنم (ستون هاش صرف نظر از جزئیات)
تاریخ - لیست
توی تاریخ ، تاریخ اون روز و توی لیست یک در واقع یک ارایه میسازم که 24 تا خونه داره و هر کدوم رو میشه با موارد boolean ( true or false) مقدار دهی کرد
البته بهتره که کلا یک ارایه باشه و هر ارایه خونش خودش یک لیست باشه که اگه true بود یعنی پر شده و در کنارش id اون فرد رو هم ثبت کنیم که زمان رو رزرور کرده یعنی اینطوری تقریبا :
$timeDoctor= { 1 : [] , 2 : , 3 : ...... };
توی اسکیما برای تعریف دیتابیس این کار رو با تابع default برای هر سطر انجام بده . زمانی که سطح ایجاد شد - مقدار لازم رو اپیدیت کن.
همچنین توی مدل این جدول باید $casts رو برای این فیلد به درستی ست کنی
@sina.it91
امکانش هست کدشو بهم بگین؟
من خودم در مدل user، کد زیر رو نوشتم ولی وقتی نوبت رو ثبت میکنم، ساعت و روز مخفی میشه.
public function checkTurns($doctor) {
return !! Turn::where('user_id' , $this->id)->where('doctor_id' , $doctor->id)->first();
}
<form action="/doctor/turn" method="POST">
@if(auth()->user()->checkTurns($doctor))
<h6 class="pull-right">ساعت حضور:
<hr>
@foreach(json_decode($doctor->presentHours) as $time)
<input type="radio" value="{{$time}}"
name="presentHours"> {{ $time }}
@endforeach
</h6>
<hr>
<h6 class="pull-right">روز حضور:
<hr>
<x-days days='{!! $doctor->presentDays !!}' type="radio"/>
</h6>
<hr>
@endif
<div class="form-group row col-4">
<div class="col">
<label class="form-check-label">حضوری</label>
<input type="radio" class="form-check-input" name="type"
value="hozori" checked="">
</div>
<div class="col">
<label class="form-check-label">آنلاین</label>
<input type="radio" class="form-check-input" name="type"
value="online">
</div>
<div class="col">
<label class="form-check-label">تلفنی</label>
<input type="radio" class="form-check-input" name="type"
value="phone">
</div>
</div>
{{ csrf_field() }}
<input type="hidden" name="doctor_id" value="{{ $doctor->id }}">
<button type="submit" class="btn btn-success pull-right activation"
onload="enable()">دریافت نوبت
</button>
</form>
@mohsen.mehri6101
اگه راه ساده تری هست اونو بگین، چیزی که شما فرمودین درسته ولی من در این پروژه نمیخوام واسه این کار از 2 جدول استفاده کنم.
اگه با یه جدول میشه ممنون میشم بهم بگین.
والله من که از کدهات چیزی سر در نیاوردم - کد هم نشون نده- اینجا ما در مورد دیتابیس و نحوه ذخیره و ثبت اطلاعات صحبت میکنیم
بحث الان تعریف سناریویه - نه کد زدن - اول سعی کن سناریو رو تعریف کنی بعد.
راه ساده تری نداره عزیز - باید یک جدول در نظر بگیری که به user هات یا همون دکترات منظورمه که متصل شده باشه و توش ساعت های معاینه رو ذخیره کنی
حالا توی اون جدول چطوری دوست داری ذخیره کنی با خودته
دوباره میگم من باشم یک جدول به نام " زمان دکتر" میسازم توش به ازای هر روز اون دکتر یک سطر رو ذخیره میکنم.که توش دو تا فیلد داره
یکی تاریخ اون روز -یکی یک لیسته که شامل ساعت و نام اون شخصیه که اون ساعت باید بیاد ( که البته اینم استاندارد نیست و این قسمتش هم یک جدول جداگانه میخاد ها- راه استاندارد ترش باز اینه که به ازای هر روز دکتر توی این فیلد - یک جدول دیگه داشته باشیم که 24 تا خونه ( یا اگه هر نیم ساعت به یکی یک ویزیت میدی 48 تا یا .... ) که توش ایدی اون شخص ثبت شده)
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟