Ich muss jetzt mit 3 DB-Tabellen arbeiten. Eine Domain-Tabelle, eine Tags-Tabelle und eine Pivot-Tabelle. In meinen Pivot-Tabellen befinden sich nur 2 foreign_keys der beiden "Main-Tables". domains_id
und tags_id
sind die zwei Fremdschlüssel.Pivot-Tablet mit Laravel bearbeiten?
folgte ich die Einführung auf dieser Seite hier: http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/
aber ich verstehe immer noch nicht die "Managing Many-to-Many Beziehungen: attach-lösen-sync" Teil.
Mein Controller-Code für die Tags ist:
$id = Input::get('id');
$request = $request->tagging;
$tags = explode(',', $request);
$all_tags = [];
foreach ($tags as $tag) {
$tag = trim($tag); // entfernen von leerstellen
$friendly_tags = Str::slug($tag); // user friendly tags
if (Str::length($friendly_tags)) {
$all_tags[] = Tags_Domains::create([ 'name' => $friendly_tags ]);
}
}
$domain = Domains::query()->findOrFail($id);
$domain->tags()->saveMany($all_tags);
In der ersten Zeile in der Funktion, die ich die ID der Domain bin immer. Diese ID sollte im Attribut domains_id in meiner Pivot-Tabelle gespeichert werden.
Nach dieser Zeile formatiere ich die Tags, die der Benutzer hinzufügen möchte und speichern Sie sie in meinem Array $ all_tags. Zum Beispiel:
$all_tags = [sunny', 'fitness', 'healthy'];
Jetzt Spar ich sie in meinem Tags Tabelle mit:
Tags_Domains::insert($all_tags);
Jetzt mag ich den Tag-IDs in dem tags_id Attribute in meiner Pivot-Tabelle speichern. Und ich weiß immer noch nicht, wie das aussieht. Der Laravel Doc. war nicht wirklich hilfreich.
mein realation in meinem Tags Modell:
public function domains() { return $this->belongsToMany('App\Models\technical\Domains', 'domain_tag', 'id', 'domains_id'); }
meine realation in meinem Domains Modell:
public function tags() { return $this->belongsToMany('App\Models\technical\Tags_Domains', 'domain_tag', 'id', 'tags_id'); }
Sie brauchen nicht das Tags_Domains Modell, sollten Sie brauchen nur Tag und Domain-Modelle mit vielen zu viele Beziehungen definiert. Sehen Sie sich die Dokumentation an https://laravel.com/docs/5.1/eloquent-relationships#many-to-many –
Ich habe meine Frage hinzugefügt. Ich habe das Pivotmodell entfernt und die Zeile im unteren Bereich meiner Frage zu meinem Domänenmodell hinzugefügt. - Aber ich verstehe immer noch nicht wirklich, wie man das benutzt .. – WellNo