如何保存2个表格之间的关系
如何将数据从一个表格保存到两个表格并保存它们之间的关系?如何保存2个表格之间的关系
我有模特公司:
public function maps() {
return $this->belongsTo('App\Map');
}
和模式地图:
public function companies() {
return $this->hasOne('App\Company');
}
,并形成输入:
- 公司名称
- 本地化(lat和长从谷歌地图) 个
和MySQL表:
- 公司(ID,姓名等)
- 地图(ID,纬度,经度)
- company_map(COMPANY_ID,MAP_ID)
并存储:
public function store(CreateCompanyFormRequest $request) {
$input = Request::all();
$company = new Company($request->all());
Auth::user()->companies()->save($company);
$lat = $request->input('lat');
$long = $request->input('long');
$maps = new Map([
'lat' => $lat,
'long' => $long
]);
$maps->save();
return $input;
}
如何保存关系b etween Comapny和Map(company_id和map_id)? 非常感谢! :)
回答:
因为它是许多一对多的关系,使用attach()
:
public function store(CreateCompanyFormRequest $request) {
$company = auth()->user()->companies()->create($request->all());
$maps = Map::create($request-all());
$company->maps()->attach($map->id);
return back()->withInput();
}
回答:
如果您正在使用数据透视表company_map
首先你应该改变你的人际关系:
public function maps() {
return $this->belongsToMany('App\Map');
}
和
public function companies() {
return $this->belongsToMany('App\Company');
}
然后您应该添加:
$maps->companies()->attach($company->id);
后:
$maps->save();
以上是 如何保存2个表格之间的关系 的全部内容, 来源链接: utcz.com/qa/265588.html