2017-01-21 5 views
0

Ich bin neu in Laravel, aber ich habe daran gearbeitet. Ich habe die Website durchsucht, kann jedoch keine spezifische Hilfe finden. Ich habe eine Variable in meinem Controller erstellt (und 1000 mal gegen ein Tutorial geprüft) und sie an die Ansicht übergeben, aber der Browser gibt einen Fehler "Undefinierte Variable".Laravel - Variable von der Steuerung zur Ansicht übergeben - undefinierte Variable

$company enthält die Tabellenzeile nach der Buchung. Ich vermute, dass es etwas damit zu tun haben könnte, dass es ein Array ist.

Controller Ressource Funktion zeigt

public function show($comp_id) 
{ 
    $company = Company::find($comp_id); 
    return view('companies.show')->with('company', $company); 
} 

Und in der Ansicht:

@section('content') 
    <h1>{{ $company->CompanyName }}</h1> 

Ich bin sicher, es ist ein einfacher Fehler, aber jede Hilfe bitte?

+0

Ich sah viele Syntaxfehler drin. –

+0

Überprüfen Sie, ob dd ($ comp_id) in der Steuerung den richtigen Wert zurückgibt –

Antwort

0

Stellt sich heraus, ich hatte das show($id) der spezifischen ID-Namen in meiner Tabellenspalte gesetzt .
public function show($id) $company = Company::where('Comp_id', $id)->first(); return view('companies.show')->withCompany($company);
Danke für Ihre Hilfe sowieso.

+0

Alles ist gut, das endet gut.Könnten Sie bitte Ihre Antwort akzeptieren, damit andere wissen, dass diese Frage gelöst wurde? –

+0

Ok, wusste nicht, ich könnte meine eigene Antwort akzeptieren, aber es macht Sinn. – PDevH

0

Wie von Sanzeeb erwähnt, hat Ihre Syntax mehrere Fehler. Lassen Sie uns versuchen, diese zuerst zu beheben.

In Ihrem Controller ändern Sie bitte Ihre Methode, wie so:

public function show($comp_id) 
{ 
    $company = Company::find($comp_id); 

    return view('companies.show')->with('company', $company); 
} 

Dann wird Ihr fiew ändern Sie bitte wie folgt:

@section('content') 

<h1>{{ $company->CompanyName }}</h1> 

Und mal sehen, ob das hilft.

+0

Eitan, Ihr Zitat meines Codes zeigt ein Semikolon zwischen der Variablen und der Klasse, aber in meiner Einreichung hatte es ein Gleichheitszeichen. Ihre Einklammerung in der "Rückansicht" unterscheidet sich von dem, was Tom Kopah vorgeschlagen hat. Ich testete beide, aber immer noch: ErrorException in 67ad97908c79b9baf76653c370849a03da33d1aa.php Zeile 5: Undefinierte Variable: Firma (Ansicht: C: \ Sites \ AI \ Ressourcen \ views \ companies \ show.blade.php) – PDevH

+0

Sorry Herren, das ist mein erste Frage zu SO, also lerne ich immer noch die Syntax und das Protokoll. Es scheint, dass @Pauwelyn bei der Übertragung meines Codes von den Bildern, die ich in meiner Frage gepostet habe, einige Fehler gemacht hat. Es gibt eine Klammer am Ende der 'Rückkehransicht'-Linie und ich habe einen '@ Stop' am Ende meines Ansichtscodes. – PDevH

0

Sie müssen einige Dinge beheben. versuche das bitte.

In Ihrem Controller ändern Sie bitte Ihre Methode, wie so:

public function show($comp_id) 
{ 
    $company = Company::find($comp_id); 

    return view('companies.show', compact('company')); 
} 

Und in der Ansicht:

@section('content') 
<h1>{{ $company->CompanyName }}</h1> 
@stop 
+0

Ich glaube, das ist die Syntax für Laravel 5, während PDevHs Frage impliziert, er verwendet Laracel 4. –

+1

@ ТомицаКораћ gut, in diesem Fall warten wir auf ihn, uns zu sagen. und wenn ja, Dann werden wir ändern :) – GabMic

+0

Ich benutze Laravel 5.3. Ich habe alle Variationen Ihrer Vorschläge getestet, insbesondere die Einklammerung und Verwendung von 'compact' vs' with'. Kein Glück. – PDevH

Verwandte Themen