如何将数据从一个表格保存到两个表格并保存它们之间的关系?
我有模特公司:
public function maps()
{
return $this->belongsTo('App\Map');
}
和模型地图:
public function companies()
{
return $this->hasOne('App\Company');
}
和输入形式:
和mysql表:
和商店:
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;
}
如何保存公司和地图之间的关系(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();