2016-08-09 87 views
0

ich nicht in der Lage scheinen, die Daten aus der Datenbank und zeigt sie auf der Bearbeitungsform zu erhalten und wenn ich alle die Syntax überprüft und die Codes scheint es tut falschkann nicht alles auf bearbeiten Form zeigen

My Model gehen :

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Buku extends Model 
{ 
    // 
} 

das für die Bearbeitung mein Controller-Code ist:

public function edit($id) 
    { 
     // find a post in the database and save as a variable 
     $post = Buku::find($id); 

     // return the view and pass in the variable we previously created 
     return view('buku.edit')->with('buku', $post); 
    } 

hier meine Ansicht nach in meiner bearbeiten Form ist, bin ich mit Bootstrap-modal für das Formular:

Beachten Sie, dass ich die if-Datei verwenden muss, um einen Fehler namens Undefined variable error auf meinem $ post zu verhindern, aber es scheint nicht wirklich den Wert von der Datenbank an die Felder übergeben ... Ich war frage mich, ob die isset Funktion ist die Ursache .. ich habe versucht, die endif am unteren Rand des Codes und der ganzen modal setzen wird nicht angezeigt, wenn ich auf den Link klicken

Jede Hilfe ist willkommen ..

Antwort

3

Zuerst schlage ich vor, Ihren Controller wie folgt zu ändern:

public function edit($id) 
{ 
    // find a post in the database and save as a variable 
    $post = Buku::find($id); 

    // return the view and pass in the variable we previously created 
    return view('buku.edit')->with('post', $post); 
} 

Ich denke, es sollte Ihr Problem lösen. Lesen Sie mehr über Passwing-Variablen zu Ansichten: https://laravel.com/docs/5.2/views#passing-data-to-views

+0

Immer noch nicht –

+0

Versuchen Sie '{{dd ($ post)}}' in Ihrem Blade zu sehen, wenn Sie die Daten erhalten und vergleichen Sie es mit 'dd ($ post)' in Ihrem Controller unter $ post = Buku :: find ($ id); ' – Mishek

+0

Ich habe das gemacht und ich habe es sogar vor die if-Anweisung gesetzt und es wirft mir die Undefinierte Variable: post (View: C: \ xampp \ htdocs \ buddhaghosa \ ressourcen \ ansichten \ modals \ modal_edit_buku.blade.php) (Ansicht: C: \ xampp \ htdocs \ buddhaghosa \ ressourcen \ ansichten \ modals \ modal_edit_buku.blade.php) –

0

Ich bemerke in Ihrem Controller, dass Sie ->with('buku', $post) verwenden. Dies wird eine Variable mit dem Namen $ buku an die Ansicht senden, die das buku enthält, das mit $post = Buku::find($id); gefunden wurde. Ändern Sie diese Zeile in ->with('post', $post).

Zweitens verwende ich if (!empty($post)) statt isset, da empty() wertet sowohl wenn es gesetzt ist und ob es leer ist. Nach http://php.net/manual/en/function.empty.php: No warning is generated if the variable does not exist. That means empty() is essentially the concise equivalent to !isset($var) || $var == false.

Drittens Ihre @endif nach dem Form::close() setzen.

Viertens, testen Sie, ob $ post tatsächlich Daten enthält. Entweder {!! dd($post) !!} vor Ihrer if-Anweisung oder else, um etwas Text zu wiederholen.

Hoffe, das hilft.

+0

Ich habe das @endif direkt nach der Form :: close() und der Das ganze Formular außer dem Titel des Formulars wird nicht angezeigt. Auch ich lege die {{! dd ($ post)!}} vor der if-Anweisung und es wirft die undefinierte Variable $ post error Undefinierte Variable: post (Ansicht: C: \ xampp \ htdocs \ buddhaghosa \ Ressourcen \ views \ modals \ modal_edit_buku.blade.php) (Ansicht: C: \ xampp \ htdocs \ buddhaghosa \ ressourcen \ ansichten \ modals \ modal_edit_buku.blade.php) –

+0

Angenommen, Sie haben {!! !!}, dass 'Undefinierte Variable: post' Ihnen sagt, was Ihr Problem ist. Es kann $ post nicht finden, also überspringt es den 'if (isset ($ post) '- Teil, der Ihr Formular anzeigen würde. Statt 'return view :: make ('buku.edit') -> mit ('buku', $ post);', versuche 'return view ('buku.edit', compact ($ post));' – Stretsh

+0

Es wird immer noch nicht angezeigt, ich denke, das Problem damit ist, dass es irgendwie nicht die Datenbankwerte an das Objekt namens $ post .. Ich habe versucht, die Standard-PHP-Funktion, um eine Zeichenfolge von meinem Controller, es aufzurufen zeigt keine Fehler an und kann den String dynamisch in meiner Ansicht anzeigen. Wo der $ post, den ich deklariere und mit den Datenbankwerten fülle, nicht irgendwie in der Ansicht erscheint. Versucht dies auch durch das Lesen der Daten aus der Datenbank und zeigt sie dynamisch in einer Ansicht mit den gleichen Fehlern an oder sie wird nicht angezeigt. –