我现在需要使用3个DB表格。一个domains-table,一个tags-table和一个pivot-table。在我的数据透视表中,只有两个“主表”中的两个foreign_keys。 domains_id
和tags_id
是两个外键。使用Laravel编辑pivot平板电脑?
我跟着这个页面上的介绍就在这里: http://laraveldaily.com/pivot-tables-and-many-to-many-relationships/
,但我还是不明白“管理许多一对多的关系:附连 - 分离同步”的一部分。
的标签我的控制器代码:
$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);
在我越来越域ID的函数的第一行。这个ID应该保存在我的数据透视表中的domains_id属性中。
在这一行之后,我格式化用户想要添加的标签并将它们保存到我的$ all_tags数组中。例如:
$all_tags = [sunny', 'fitness', 'healthy'];
现在,我与它们保存在我的标签表:
Tags_Domains::insert($all_tags);
现在,我要保存这些标签的ID在我的透视表中的tags_id属性。我仍然不知道这是怎么回事。 laravel doc。并没有真正的帮助。
我在我的标签模型realation:
public function domains() { return $this->belongsToMany('App\Models\technical\Domains', 'domain_tag', 'id', 'domains_id'); }
我realation在我的域模型:
public function tags() { return $this->belongsToMany('App\Models\technical\Tags_Domains', 'domain_tag', 'id', 'tags_id'); }
你不需要Tags_Domains模型,你应该只需要多对一标签和领域模型。定义了多对多关系。看看文档https://laravel.com/docs/5.1/eloquent-relationships#many-to-many –
我已经添加了我的问题。我删除了枢轴模型,并将我问题底部的一行添加到我的域模型中。 - 但我仍然不太明白如何使用.. – WellNo