سلام دوستان.
من میخوام روزهای حضور دکتر رو نمایش بدم ولی به صورت زیر بهم نمایش میده:
[{"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
در صوررتی که بقیه مشخصات رو به درستی نمایش میده.
@eniack
افزونه json formatter نصب هست ولی من داخل جدولم که میخوام روزها رو نمایش بدم به این صورت بهم نمایش میده.
شاید پاسخ شما همینجا باشد
@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
@mohaligateway
متاسفانه جواب نداد.
سلام دوباره @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
اگه مشکلی نداشت برو مرحله بعد ....