显示名称而不是ID。 Laravel

时间:2016-06-01 08:30:17

标签: php laravel laravel-5 eloquent laravel-5.2

我有两张桌子;学生和年级。学生包含引用成绩的外键grade_id。 为了查看学生,我使用了以下代码; 控制器:

class student extends Model
{
    //
    protected $fillable = ['first_name','middle_name','last_name','grade_id'];
}

查看:

{{1}}

型号:

{{1}}

它显示了我称之为grade_id。但我想要grade_name而不是那个。任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

首先,您需要在学生模型中定义与Grade的关系:

class student extends Model
{
  public function grade() {
    return $this->belongsTo(Grade::class);
  }
}

然后你应该能够为学生

急切加载成绩
$students = Student::with('grade')->get();

并使用

访问学生的成绩名称
$student->grade->name

答案 1 :(得分:1)

在模型中

class student extends Model
{

protected $fillable = ['first_name', 'middle_name', 'last_name', 'grade_id'];

  public function grade()
  {
      return $this->belongsTo('Grade');
  }
}

在控制器

$students = Student::with('grade')->get();

在视图中

@foreach ($students as $student)
    $studentGradeName = $student->grade->name;
@endforeach