سلام خدمت دوستان عزیز.
من میخوام یه سایت نوبتدهی واسه پزشکان بنویسم، به این صورت که ادمین میاد دکتر اضافه میکنه. حالا واسه اضافه کردن دکتر به این فیلدها نیاز دارم: نام و نام خانوادگی، تخصص، مدرک تحصیلی، روزهای حضور، ساعت های حضور و عکس.
همچنین میخوام زمانی که مثلا بیمار میاد از یه دکتر روز شنبه، ساعت 8 صبح نوبت میگیره دیگه اون روز و ساعت به کاربرای دیگه نمایش داده نشه.
برای پیاده کردن چنین سناریویی جداول رو به چه صورت باید بنویسم.
جدول users رو به صورت زیر نوشتم.
$table->id();
$table->string('firstName');
$table->string('lastName');
$table->string('mobile')->unique();
$table->string('idNumber')->unique();
$table->string('role')->default('user');
$table->string('password');
$table->timestamps();
در ساده ترین حالت نیاز به یک جدول دیگه دارید مثلا بنام Reservations که با جدول پزشکان رابطه از نوع One-To-Many داشته باشه و مشخص باشه که دقیقا برای چه تاریخ و ساعتی و از کدام پزشک یک وقت ویزیت رزرو شده.
برای نمایش یا عدم نمایش زمان ها هم کافیه زمان های حضور پزشک با زمان های رزورهای به ثبت رسیده مقایسه بشه و از همدیگه کم بشن.
سلام .
به نظرم شما ی جدول بساز برای نوبت توش فیل دهای زیر رو بزار
day
time
status
میشه :
روز
ساعت
وضعیت
در نهایت هم چک میکنی اگه شنبه بود ساعت 8 بودبیاد status یا وضعیتش رو چک بکنه که اگه هست 1 باشه در غیر این صورت 0 که نشونه خالی بودن یا نبودنه نوبته .
موفق باشید
@mhyeganeh
@alibagheri
ببینید فعلا من نمیخوام عملیات نوبتدهی رو پیاده سازی کنم، من کلیت قضیه رو خدمتتون عرض کردم. در واقع سوال اصلی من اینه که زمانی که مدیر سایت میخواد اطلاعات دکتر رو وارد کنه جداول رو به چه صورت در نظر بگیرم.
من خودم این جدول ها رو تعریف کردم:
تخصص ها: (مغز و اعصاب و ...)
$table->id();
$table->string('specialty');
$table->timestamps();
روزها: (شنبه و ...)
$table->id();
$table->string('days');
$table->timestamps();
ساعت ها: (8 و ...)
$table->id();
$table->string('hours');
$table->timestamps();
مدرک: (متخصص یا فوق تخصص)
$table->id();
$table->string('degrees');
$table->timestamps();
دکتر: (من در این جدول به doctor_id نیاز دارم ولی نمیدونم باید واسه این فیلد چیکار کنم؟ در واقع میخوام بعد از ثبت دکتر زمانی که میخوام اطلاعاتش رو نشون بدم بتونم این کار رو انجام بدم)
$table->id();
$table->string('image');
$table->timestamps();
کنترلر مربوط به ثبت دکتر جدید:
در واقع با استفاده از create اطلاعاتی که در جدول ها ثبت کردم رو در ویو نمایش دادم.
public function create()
{
$users = User::where('role', '=', 'doctor')->get();
$specialties = Specialty::all();
$days = Day::all();
$hours = Hour::all();
$degrees = Degree::all();
return view('Panel.doctors.create', compact('users', 'specialties', 'days', 'hours', 'degrees'));
}
public function store(CreateDoctorRequest $request)
{
$file = $request->file('image');
$file_name = $file->getClientOriginalName();
$file->storeAs('images/image', $file_name, 'public_files');
$data = $request->validated();
$data['image'] = $file_name;
$data['user_id'] = auth()->user()->id;
Doctor::create(
$data
);
session()->flash('status', 'دکتر با موفقیت ایجاد شد');
return redirect()->route('doctors.index');
}
ویو ثبت دکتر:
<form action="{{ route('doctors.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="card-body">
<div class="form-group">
<label for="fullName">نام و نام خانوادگی</label>
<select class="form-control">
@foreach($users as $user)
<option>{{ $user->firstName }} {{ $user->lastName }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>تخصص</label>
<select class="form-control" name="specialty">
@foreach($specialties as $specialty)
<option selected>{{ $specialty->specialty }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>روز</label>
<select class="form-control" name="days">
@foreach($days as $day)
<option selected>{{ $day->days }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>ساعت</label>
<select class="form-control" name="hours">
@foreach($hours as $hour)
<option selected>{{ $hour->hours }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>مدرک</label>
<select class="form-control" name="degrees">
@foreach($degrees as $degree)
<option selected>{{ $degree->degrees }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="image">عکس</label>
<input type="file" class="form-control" name="image" accept="image/*"/>
</div>
@error('image')
<p id="error">{{ $message }}</p>
@enderror
</div>
<div class="card-footer">
<button type="submit" class="btn btn-primary">ثبت</button>
</div>
</form>
در کل میخواستم ببینم روندی که پیش گرفتم درسته یا نه؟
اگه درسته که فقط قسمت doctor_id رو کمک کنید و اگه هم غلطه راه درست رو بهم نشون بدین.
با تشکر.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟