Ich muss sagen, dass mein Code funktioniert gut, aber ich verstehe nicht, warum ... Ich möchte einige benutzerdefinierte Felder für verschiedene "Module" hinzufügen.Erklärung für meine polymorphe Beziehung
für Beispiel Ich habe 3 Tabellen: Kameras, Server und custom_fields.
Kamera & Server-Modell:
public function custom_fields()
{
return $this->morphToMany('App\Models\Camera', 'item', 'description_fields', '', 'name')
->withPivot('name', 'value')
->withTimestamps();
}
Die Tabelle für diese Beziehung:
Schema::create('description_fields', function (Blueprint $table) {
$table->increments('id');
$table->integer('item_id')->unsigned();
$table->string('item_type');
$table->string('name');
$table->string('value');
$table->timestamps();
});
ich einige Elemente über diese Leitung im Controller hinzufügen:
$camera->custom_fields()->attach($request->custom_field);
Meine Frage ist über das Modell, warum ich schreiben:
morphToMany ('App \ Models \ Kamera', 'Artikel', 'description_fields', '', 'name')
Ich verstehe nicht, warum ich die zwei letzten Parameter angeben müssen: ' ',' Name '(ändere' Name 'durch' Wert 'und es funktioniert, aber wenn ich' 'lösche', 'Name' funktioniert nicht).
Ich habe das Dokument für die Params gelesen, aber ich verstehe immer noch nicht (ich bin kein professioneller Entwickler, aber ich lerne selbst). Wenn jemand 5 Minuten Zeit hat, um mich zu erklären, wird es geschätzt.
Vielen Dank im Voraus.
Danke für die schnelle Antwort. Es funktioniert nur, wenn ich einige Daten hinzufüge, aber wenn ich die benutzerdefinierten Felder von der Kamera bekommen will, funktioniert es nicht. Ich denke ich meine Beziehung ist nicht korrekt, aber danke, ich werde versuchen, es zu bekommen! – alexcool68
Ich hatte meine Beziehung durch diese neu geschrieben: 'zurück $ this-> morphToMany ('App \ Models \ Server', 'Artikel', 'description_fields', '', 'item_id') -> withPivot ('Name' "Wert") -> withTimestamps(); ' Es funktioniert jetzt gut, aber ich muss' {{$ custom_field-> pivot-> name}}} in Blade verwenden. Es ist okay, ich verstehe es! – alexcool68