Свойство отношения один ко многим не существует в этом экземпляре коллекции

Я пытаюсь использовать отношение "один ко многим" для заполнения столбца в моей таблице.

/// это мое мнение student.blade.php////

@foreach($student as $students)
 <tr role="row" class="odd">
   <td class="sorting_1">{{$students->id}}</td>
   <td><img src="/img/{{$students->photo}}"
       style="width: 50px; height: 50px; border-radius: 50%;">
   </td>
    <td>{{$students->matric_no}}</td>
    <td>{{$students->first_name}}</td>
    <td>{{$students->last_name}}</td>
    <td>{{$students->gender}}</td>
    <td>{{$students->DOB}}</td>
    <td>{{$students->classrm->id}}</td>

///студенческая модель ////

public function classrm(){
        return $this->belongsTo(Classroom::class);
    }

/// модель класса///

public function student(){
        return $this->hasMany(Student::class);
    }

/// студенческий контроллер ///

public function index()
    {
        $student = Student::all();
        return view('student.Index', compact('student'));
    }

я ожидаю, что он отобразит значения в моей БД, но выдает исключение, пытаясь получить идентификатор не-собственности


person a.paul    schedule 28.12.2018    source источник
comment
ваше поле classroom_id может быть обнулено в БД? Я подозреваю, что $student->classrm возвращает null, отсюда и причина исключения. Кстати, измените свое соглашение об именах, так как students во множественном числе, а student в единственном числе, что означает, что вы должны перебирать students и распечатывать каждые student данных подряд.   -  person nakov    schedule 29.12.2018
comment
да, мой class_id имеет значение null ...   -  person a.paul    schedule 29.12.2018
comment
спасибо за совет по соглашению об именах   -  person a.paul    schedule 29.12.2018


Ответы (1)


просто измените имя вашего отношения на classroom в вашей студенческой модели:

public function classroom(){
    return $this->belongsTo(Classroom::class);
}
person Ahmed Nour Jamal El-Din    schedule 29.12.2018
comment
P.S. старайтесь следовать соглашениям об именах. это так важно в laravel. - person Ahmed Nour Jamal El-Din; 29.12.2018