我有一个location
的视图。这个location
具有不同的services
。它们在模型LocationService
中的模型(n-m关系)中都有许多链接。
在此视图中,可以为tags
的每个service
选择不同的location
。我有一个名为location_service_tag
的模型,其id为location_service
,id为tags
。
现在,我想使用同步方法存储tags
组合的location_service
。如何存储这些信息?
以下是一个示例(ID是自由选择的):
我有location
1的视图。
这个位置有2 services
,ID为11,22。
它们存储在location_service
中,ID为111,122。
location_service 111具有标签id 1111,2222,location_service 122具有标签2222,4444。
现在我想使用sync将这些标签存储到location_service_tag中。这怎么可能?
我认为这可能有点像这样,但事实并非如此。
foreach($request->servicetags as $servicetag){
if(count($servicetag)>0){
//Final statement must be true, because we want to override e.g. if one is deleted or inserted
$location->locationservice()->tags()->sync($servicetag, true);
}else{
//There are no services, submit an empty array
$location->locationservice()->tags()->sync([], true);
}
}
答案 0 :(得分:0)
最后我做了:
//Save relational Data of services
//If there are services, add the, else add empty array
if(isset($request->locationservices)){
foreach($request->locationservices as $key => $locationservice){
if(count($locationservice)>0){
LocationService::find($key)->tags()->sync($locationservice, true);
}else{
LocationService::find($key)->tags()->sync([], true);
}
}
}
密钥将locationservice_id作为密钥,循环的值将选定的tag_ids作为每个locationservice的数组。