2016-07-28 9 views
0

Ich habe ziemlich gut zwei Tage auf etwas so einfach und klein verbracht. Ich habe ein Modell namens User, das eine User-Note-Beziehung hat.Laravel 5 hat eine Beziehung mit Formbindung

Auf der Seite des Benutzermodells habe ich eine angsonsTo Beziehung definiert und dann definiert das Benutzermodell eine hasOne Seite der Beziehung.

Das Formular, das ich verwende, bindet an Modell $user, während das UserNote-Modell eine eigene Tabelle hat, die dem Benutzer mit user_id zugeordnet ist.

Ich habe versucht zu bekommen, was unten rechts angezeigt wird;

{{ Form::textarea($user->notes, null , [ 'class' => 'form-control', 'placeholder' => 'Note Content']) }} 

Jemand da draußen zu helfen mir, dies herauszufinden? B Alles was ich brauche zu können, ist eine Notiz hinzufügen und wenn ein Benutzer noch keine Kenntnis hat, soll mich nicht, weil immer Fehler, wenn ich unten gezeigt tun Ich erhalte einen Fehler:

{{ Form::textarea('UserNote[content]',... }} 

Ihr Rat würde geschätzt werden.

class User{ 
... 
public function note() 
{ 
    return $this->belongsTo(UserNote::class); 
    } 
} 

class UserNote{ 
protected $fillable = ['content', 'user_id']; 
... 
public function user() 
{ 
    return $this->hasOne(User::class, 'user_id'); 
    } 
} 

Sicherlich die user_id in $fillable sollte in erster Linie nicht da sein, weil dies nur bedeutet, dass ich diese Tabelle manuell aktualisieren kann, während ich alles automatisch von der Steuerung erfolgen soll Bindung bilden.

+0

Welchen Fehler bekommen Sie? – jaysingkar

+0

Aktualisieren Sie Ihre Frage mit Ihren Modellen bitte – Vuldo

+0

@Vuldo Ich tat es so Vielen Dank im Voraus. – Maximum86

Antwort

0

Zuerst machen Sie die Beziehung falsch.

  • Benutzer hasOne UserNote
  • UserNote belongsTo Benutzer

Also, haben Sie die Beziehungen zu diesen entsprechenden Modelle zu tauschen. Zweitens
, das Textfeld des Formulars hat die Parameterliste wie:

public function textarea($name, $value = null, $options = []){} 

So, der erste Parameter ist offensichtlich die formular_name. zweiter Parameter ist der Wert des Eingangs. Du machst das falsch.
In Ihrem Fall, dass sein sollte (wie ich glaube)

{{ Form::textarea('user_note', $user->note , [ 'id' => 'user_note', 'class' => 'form-control', 'placeholder' => 'Note Content']) }} 

bearbeiten
Die Eigenschaft note wird der Methodenname, sind Sie vorher wie Schreiben von Notizen, Die Methode existierte nicht. Bearbeiten Ergebnisse
Hoffe, das hilft. Glückliche Kodierung!

+0

Vielen Dank Sir, @ ssl-anik, ich werde es auf jeden Fall versuchen und auf Sie zurückkommen. – Maximum86

+0

Wenn das hilft, bitte upvote die Antwort. Vielen Dank. –

+0

Ja, ich werde es auf jeden Fall tun. – Maximum86