Laravel 8 で生徒のショーを作成しようとしたときに、いくつかのエラーが発生しました。最初は生徒を作成していませんでした。次に、/students/ ページでエラーが発生しました。
null でプロパティ「country_name」を読み取ろうとしています
index.blade.php
<tbody id="allocate-table-body">
@foreach($students as $student)
<tr class="id-card">
<td><a target="_blank" href=""> {{$student->id}}</a></td>
<td> {{$student->name}}</td>
<td>{{$student->countries->country_name}}</td>
<td>{{$student->phone}}</td>
<td>{{$student->work}}</td>
<td>{{$student->group}}</td>
<td>{{$student->email}}</td>
<td><a class="btn btn-success" href="#">edit</a></td>
</tr>
@endforeach
</tbody>
学生モデル
class Student extends Model
{
use HasFactory;
public $fillable = [
'name',
'marital',
'gender',
'country',
'city',
'education',
'work',
'phone',
'group',
'email',
'description'
];
public function countries()
{
return $this->belongsTo(Country::class);
}
}
国モデル
class Country extends Model
{
protected $fillable = ['id', 'phone_code', 'country_code', 'country_name'];
use HasFactory;
public function student()
{
return $this->hasMany(Student::class);
}
}
学生コントローラー
public function index(Request $request)
{
$students = Student::paginate(50);
$countries = DB::table('countries')->get();
return view('students.index', compact( 'students','countries'));
}