我有两个表要保存数据。其中一个有外键,所以我有一对多的关系。但是,我不明白如何将数据同时保存到两个表中。我有一个查询,其中包含一个表的数据和另一个应附加到第一个表的数据。
这是主要模型
class Site extends Model
{
protected $fillable = ['path', 'site_link'];
public $timestamps = false;
public function features() {
return $this->hasMany('App\SiteFeature');
}
}
这是子模型
class SiteFeature extends Model
{
protected $fillable = ['feature', 'site_id'];
public $timestamps = false;
}
现在我的 Controller 看起来像这样
class SiteController extends BaseController
{
public function index()
{
return Site::all();
}
public function show(Site $id)
{
return $this->response->item($id, new SiteTransformer);
}
public function store(Request $request)
{
$site = Site::create($request->all());
return response()->json($site, 201);
}
我知道它会将它保存为一个数据。我请你帮我把数据分成两个表。在文档中,我找到了存储与数据库中现有模型的关系的方法,但是在创建时我没有那个模型。
最佳答案
这样解决
public function store(Request $request)
{
$site = Site::create([
"path" => $request->path,
"site_link" => $request->link,
]);
foreach ($request->features as $feature) {
$site->features()->save(new SiteFeature(["feature" => $feature]));
}
return response()->json($site, 201);
}
关于php - Laravel 有很多保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52026123/