2017-01-27 5 views
0

Verwenden von Beziehungen zum ersten Mal und Probleme zu verstehen.Laravel: Modell Klasse nicht in Beziehungen gefunden

Ich habe eine Student Klasse und eine Course Modellklasse. Ein Student kann viele Kurse belegen. In Student Modell Ich tue dies:

public function course() {
return $this->belongsTo('Course'); }
und in der Steuerung, wenn ich dies tun: .$student->course()->course_title es Fehler gibt:

FatalThrowableError in Model.php line 779: Class 'Course' not found

Was mache ich falsch?

+0

Etwas falsch hier durch. Ich denke, dass ein "Student" viele "Kurse" belegen kann und ein "Kurs" viele "Studenten" haben kann. Es muss also 'ansesToMany' anstelle von" belongsTo "verwendet werden. –

+0

Bearbeitet/aktualisiert meine Antwort. Bitte sehen Sie unten – idelara

Antwort

0

ersetzen Sie den Code mit ihm

public function course() 
{ 
    return $this->belongsTo(Course::class); 
} 
+0

'gehört zuTo' nimmt einen String als Klassenname – Volatil3

0

Ihre ersetzen mit vollständiger Namespace

public function course() 
{ 
    return $this->belongsTo('App\Models\Course'); 
} 
+0

' FatalThrowableError in Model.php Zeile 779: Klasse 'App \ Models \ Course' nicht gefunden – Volatil3

0

Stellen Sie sicher, Ihren Namensraum in Ihren Course Klasse Streichhölzer 'App \ Model'. Sie versuchen möglicherweise, auf einen "leeren" Namespace zuzugreifen.

Namespaces werden am Anfang Ihrer Klassendatei deklariert. So zum Beispiel:

Course.php:

namespace App\Models; 

use Illuminate\Http\Request; 
... 


class Course extends Model { ... } 

OtherClass.php

namespace App\Models; 

use Illuminate\Http\Request; 
... 


class OtherClass extends Model { 

... 

    public function course() 
    { 
     return $this->belongsTo('App\Models\Course') 
    } 

} 

Bitte beachten Sie, dass der Namespace an der Spitze der Course.php erklärte den Pfad zu dem Verhältnis Verfahren bereitgestellt Spiele (zurück) belongsTo(). Sie können Course::class auch der Methode "belongsTo" bereitstellen, aber Sie müssen die Klasse "aka use" in Ihre PHP-Klasse importieren.

Ich hoffe, das hilft!

Verwandte Themen