سلام
دوستان من داخل دیتابیس foreignId به جدول دیگری دارم.
حال موقع نمایش به جای اینکه name اصلی قرار بگیره آی دی قرار میگیره
چطور میشه آی دی foreignId رو داخل جدول اصلیش پیدا کنم و عنوان اصلی رو درون جدول قرار بدم؟
هرکدی که میزنم خطا دارم و درست نمیشه
نسخه لاراول 10 استفاده میکنم.
سلام
برای نمایش نامهای مرتبط با آی دیهای 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}";
}
سلام
برای نمایش نامهای مرتبط با آی دیهای 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}";
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟