سلام دوستان.
من میخوام روزهای حضور دکتر رو نمایش بدم ولی به صورت زیر بهم نمایش میده:
[{"id":1,"days":"\u0634\u0646\u0628\u0647","created_at":"2021-04-07T16:46:34.000000Z","updated_at":"2021-04-
07T16:46:34.000000Z","pivot":{"doctor_id":1,"day_id":1}},
{"id":2,"days":"\u06cc\u06a9\u0634\u0646\u0628\u0647","created_at":"2021-04-
07T16:46:44.000000Z","updated_at":"2021-04-07T16:46:44.000000Z","pivot":{"doctor_id":1,"day_id":2}}]
@foreach($doctors as $key => $doctor)
<tbody>
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $doctor->user()->get()->first()->firstName }} {{ $doctor->user()->get()->first()->lastName }}</td>
<td>{{ $doctor->getDegree() }} {{ $doctor->getSpecialty() }}</td>
<td>{{ $doctor->days }}</td>
</tr>
</tbody>
@endforeach
در صوررتی که بقیه مشخصات رو به درستی نمایش میده.
سلام
این فرمت json هست شما افزونه json viewer رو نصب کنید روی مرورگرتون برای نمایش بهتر و خواناتر این اطلاعات.
@eniack
افزونه json formatter نصب هست ولی من داخل جدولم که میخوام روزها رو نمایش بدم به این صورت بهم نمایش میده.
چون شما از رابطه pivot استفاده کردید به این صورت نمایش میده.
اسم اون فانکشنی که داخلش رابطه pivot هست رو باید بنویسید و بعد اشاره کنید به مقداری که مد نظر دارید مثلا اسم فانکشن value هست باید به این صورت نوشته بشه
$doctor->pivot->value->id
@eniack
مدل Doctor:
public function days() {
return $this->belongsToMany(Day::class);
}
کنترلر مربوطه:
public function index() {
$doctors = Doctor::oldest()->paginate();
return $doctors->load('days');
return view('Home.doctorProgram', compact('doctors'));
}
ویو مربوطه:
<td>{{ $doctor->pivot->days->id }}</td>
داخل کنترلر اگه return اولی رو بذارم اطلاعاتی که به صورت json برمیگردونه به صورت زیر است:
[
{
"id": 1,
"user_id": 2,
"specialty": "eye",
"degree": "expert",
"image": "0_Original_4cf3f5e9-b584-4ed0-bbea-e6aaa35810d9.jpg",
"created_at": "2021-04-07T16:49:21.000000Z",
"updated_at": "2021-04-07T16:49:21.000000Z",
"days": [
{
"id": 1,
"days": "شنبه",
"created_at": "2021-04-07T16:46:34.000000Z",
"updated_at": "2021-04-07T16:46:34.000000Z",
"pivot": {
"doctor_id": 1,
"day_id": 1
}
},
{
"id": 2,
"days": "یکشنبه",
"created_at": "2021-04-07T16:46:44.000000Z",
"updated_at": "2021-04-07T16:46:44.000000Z",
"pivot": {
"doctor_id": 1,
"day_id": 2
}
}
]
},
{
"id": 2,
"user_id": 3,
"specialty": "heart",
"degree": "specialty",
"image": "0_Original_473449ac-2a08-4c15-8135-7d441d55ec9d.jpg",
"created_at": "2021-04-07T16:49:53.000000Z",
"updated_at": "2021-04-07T16:49:53.000000Z",
"days": [
{
"id": 3,
"days": "دوشنبه",
"created_at": "2021-04-07T16:46:53.000000Z",
"updated_at": "2021-04-07T16:46:53.000000Z",
"pivot": {
"doctor_id": 2,
"day_id": 3
}
},
{
"id": 4,
"days": "سه شنبه",
"created_at": "2021-04-07T16:47:03.000000Z",
"updated_at": "2021-04-07T16:47:03.000000Z",
"pivot": {
"doctor_id": 2,
"day_id": 4
}
}
]
}
]
و اگر return رو نذارم و به صورت زیر بنویسم:
public function index() {
$doctors = Doctor::oldest()->paginate();
$doctors->load('days');
return view('Home.doctorProgram', compact('doctors'));
}
ارور زیر رو دریافت میکنم:
Trying to get property 'days' of non-object
سلام دوست عزیز.
ارور property of non-object که به خوبی مشخصه داره چی می گه شما نمی تونید بعد از paginate از load استفاده کنید.
برای نمایش دادن روز های دکتر امیدوارم کد های زیر بتونه مشکلتون رو حل کنه.
public function index(ِDoctor $doctor) {
return view('Home.doctorProgram', compact('doctor'));
}
و در view مورد زیر را وارد کنید.
@foreach($doctor as $key => $item)
<tbody>
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $item->user()->firstName }} {{ $item->user()->lastName }}</td>
<td>{{ $item->getDegree() }} {{ $item->getSpecialty() }}</td>
<td>{{ $item->days }}</td>
</tr>
</tbody>
@endforeach
سلام دوباره @arminrahmati999
یکی از روش های دیباگ کردن کدها که برنامه نویس ها معمولا به این روش پیش میرن (البته درس پس می دیم خدمت شما 😅) این هستش که خروجی dd می گیرن. شما هم روال زیر رو پیش برید نتیجه می گیرید.
@foreach($doctor as $key => $item)
@dd($item)
<tbody>
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $item->user()->firstName }} {{ $item->user()->lastName }}</td>
<td>{{ $item->getDegree() }} {{ $item->getSpecialty() }}</td>
<td>{{ $item->days }}</td>
</tr>
</tbody>
@endforeach
@endforeach
اگه خروجی مشکلی نداشت حالا user رو هم اضافه کنید.
@foreach($doctor as $key => $item)
@dd($item->user)
<tbody>
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $item->user()->firstName }} {{ $item->user()->lastName }}</td>
<td>{{ $item->getDegree() }} {{ $item->getSpecialty() }}</td>
<td>{{ $item->days }}</td>
</tr>
</tbody>
@endforeach
اگه مشکلی نداشت برو مرحله بعد ....
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟