2017-10-12 10 views
0

Ich versuche Beziehung zwischen zwei Tabellen zu machen:Beziehungen null in Laravel 5.5

Meine Modelle:

class Modele extends Model 
{ 
public function shoe() 
{ 
    return $this->hasMany('Shoe'); 
} 
} 

class Shoe extends Model 
{ 
    public function modele() 
    { 
    return $this->belongsTo(Modele::class, 'IdModele','id'); 
    } 
} 

mein Controler:

class shoeController extends Controller 
{ 
public function index() 
{ 

$shoesList= \App\Shoe::with('modele')->orderBy('idModele')->get(); 

return view('shoe.index',compact('shoesList')); 
} 
} 

When I dd($shoeList) , I have this:

#relations: array:1 [▼ 
    "modele" => null 
    ] 

und Wenn ich versuche, die Parameter in der Klinge wie folgt zu verwenden:

<p>{{$shoe->modele->idGender}}</p> 

Ihave diesen Fehler:

ErrorException thrown with message "Trying to get property of non-object (View: C:\laragon\www\ipepsShoes2017\resources\views\shoe\index.blade.php)

Ich habe andere Beziehungen zwischen Tabellen in diesem Projekt machen mit der gleichen Art und Weise und they'r arbeiten gut mit.

Ich verstehe nicht, warum es nicht funktioniert.

Vielen Dank.

+0

Ich bin mir nicht sicher, aber wenn Sie 'hasMany' machen, müssen Sie den Tabellennamen schreiben, ich weiß nicht, ob diese Tabelle' Schuh' von 'Schuh' ist. Können Sie uns Ihre Tabellenstruktur zeigen? – matiaslauriti

+1

Rückgabe $ this-> gehört zu (Modele :: class, 'idModele', 'id'); Ich denke, ich muss kleiner Brief sein Nto Capse – iCoders

+0

Hier ist meine Tabelle Schema: https: //photos.app.goo.gl/aGj9ATqhd8qxsMt92 Sorry, ich kann nicht hochladen Fotos .... die Beziehungen zwischen Modele und der anderen Tabelle oberen funktioniert einwandfrei ... –

Antwort

0

versuchen, diese

class Modele extends Model 
{ 
public function shoe() 
{ 
    return $this->hasMany('App\Shoe'); 
} 
} 

class Shoe extends Model 
{ 
    public function modele() 
    { 
    return $this->belongsTo('App\Modele', 'IdModele','id'); 
    } 
} 

Ihrer Ansicht nach ersten Scheck {{print_r ($ Schuh-> modele)}}, wenn Sie dann param Anruf-Objekt bekommen, was Sie

+0

Thx, aber ich habe das schon probiert ... –

+0

wenn ich print_r mache ($ shoe-> model) drucke es nur eine 1. für die andere Beziehung, die arbeiten, druckt es alle Parameter ... –

+0

Nur um zu bestätigen, bcs @ Hamel gab keine Erklärung, was er repariert oder warum es helfen würde, damit Sie es vielleicht verpasst haben: @Fred, Ihr Original Code verwendet 'return $ this-> hasMany ('Shoe');' was falsch ist. Sie müssen das Modell wie 'return $ this-> hasMany ('\ App \ Shoe');' oder 'return $ this-> hasMany (Shoe :: class);' angeben. Hast du das repariert? –

0

Versuchen brauchen eine fremd zu schreiben Schlüssel für hasMany Bezug auf Modele Modell:

class Modele extends Model 
{ 
    public function shoe() 
    { 
     return $this->hasMany('Shoe', 'IdModele'); 
    } 
} 

Hoffe, dass es Ihnen helfen :)