راکت
حل شده

تغییر foreignId به عنوان اصلی

2 پاسخ

سلام
دوستان من داخل دیتابیس foreignId به جدول دیگری دارم.
حال موقع نمایش به جای اینکه name اصلی قرار بگیره آی دی قرار میگیره

چطور میشه آی دی foreignId رو داخل جدول اصلیش پیدا کنم و عنوان اصلی رو درون جدول قرار بدم؟
هرکدی که میزنم خطا دارم و درست نمیشه
نسخه لاراول 10 استفاده میکنم.
 تصویر

ثبت پرسش جدید

پاسخ‌ها

2
سینا شاه‌اویسی
سینا شاه‌اویسی
@sinashahoveisi

تخصص: برنامه نویس

بهترین پاسخ

سلام
برای نمایش نام‌های مرتبط با آی دی‌های foreign key می‌توانید از روابط Eloquent و همچنین استفاده از تابع‌های with() و join() استفاده کنید. مثلا به این شکل:
اگر جدول کلاس‌ها (Classes) دارای فیلدهای teacher_id و course_id بود، مدل کلاس‌ها به این صورت خواهد بود:

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Class extends Model
{
    public function teacher()
    {
        return $this->belongsTo(Teacher::class);
    }

    public function course()
    {
        return $this->belongsTo(Course::class);
    }
}

برای مدل استاد (Teacher):

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Teacher extends Model
{
    public function classes()
    {
        return $this->hasMany(Class::class);
    }
}

برای مدل درس (Course):

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Course extends Model
{
    public function classes()
    {
        return $this->hasMany(Class::class);
    }
}

حالا می‌توانید از تابع with() برای زمانی که اطلاعات را از پایگاه داده بخوانید، استفاده کنید تا اطلاعات مرتبط را هم بخوانید:

use App\Models\Class;

$classes = Class::with('teacher', 'course')->get();
foreach ($classes as $class) {
    echo "Class: {$class->course->name}, Teacher: {$class->teacher->name}";
}
سامان صالحی محمدی
سامان صالحی محمدی
@samansle

تخصص: برنامه نویس وب

سلام
باید از رابطه یک به چند در Model استفاده کنید
آموزش

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام