【问题标题】:Display name instead of id. Laravel显示名称而不是 ID。拉拉维尔
【发布时间】:2016-06-01 19:08:36
【问题描述】:

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

public function viewStudent()
    {

       $students=Student::all();
        return $students('grade_id');
        $grade = Grade::find($id, ['id', 'grade_name']);

        return view('students.view',compact('students'));
    }

查看:

 <tbody>
            @foreach($students as $student)
            <tr class="info">
                <td>{{$student->first_name}}</td>
                <td>{{$student->middle_name}}</td>
                <td>{{$student->last_name}}</td>
                <td>{{$student->grade_id}}</td>


            </tr>

            @endforeach
        </tbody>

型号:

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

它显示了我所说的grade_id。但我想要grade_name 而不是那个。谁能帮帮我?

【问题讨论】:

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


    【解决方案1】:

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

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

    那么你应该能够急切地为学生加载成绩

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

    并使用

    访问学生的年级名称
    $student->grade->name
    

    【讨论】:

      【解决方案2】:

      在模型中

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-28
        • 2018-06-25
        • 2018-11-12
        • 1970-01-01
        • 2014-10-24
        • 1970-01-01
        • 2020-11-11
        • 2016-08-07
        相关资源
        最近更新 更多