Laravel关系方法不起作用


Laravel relationship method not working

在花了几个小时解决这个问题之后,我想向你寻求帮助。

我有以下结构:

模型: Student.php

class Student extends Model
{
    protected $table = 'studenten';
    public function kurs() {
        return $this->belongsTo(Kurs::class);
    }
}

模型: Kurs.php

class Kurs extends Model
{
    protected $table = 'kurse';
    public function studenten() {
        return $this->hasMany(Student::class);
    }
}

控制器: KursController.php

class KursController extends Controller
{
    public function showStudenten() {
        return view('example.studenten', [
            'kurse' => Kurs::all(),
        ]);
    }
}

视图:例子' studenten.blade.php

@foreach($kurse as $kurs)
    <p>{{ $kurs->title }}, {{ $kurs->id }}</p>
    @foreach($kurs->studenten() as $student)) 
      <p>{{ $student->name }}</p>
    @endforeach
@endforeach
表:

kurse

id | title | created_at | updated at
表:

studenten

id | name | kurs_id | created_at | updated_at

我正在尝试输出属于每门课程的学生。我的错误在哪里?我试图在我的模型方法中指定外键'kurs_id',但它不起作用。你能帮我找出我的错误吗?

提前感谢。

试试这个

In Your Controller

 public function showStudenten() {
    return view('example.studenten', [
        'kurse' => Kurs::with('studenten')->get(),
    ]);
}

视图文件

@foreach($kurse as $kurs)
 <p>{{ $kurs->title }}, {{ $kurs->id }}</p>
   @foreach($kurs->studenten as $student)) 
    <p>{{ $student->name }}</p>
   @endforeach
@endforeach