Laravel 5.4 存储质量分配模型和关系

Laravel 5.4 storing mass assignment model and relationship

我不确定在 Laravel 5.4 中插入批量分配关系时的最佳做法 - 我是该框架的新手。下面的代码工作正常,但是你能告诉我有没有一种方法可以简单地插入一行(插入关系)?

我试过查看“save()”和 'push()',但它没有按预期工作。如果交易规模扩大,这会产生影响吗?

我有一个 Listing 模型,具有 hasOne 关系:

    public function garage()
    {
       return $this->hasOne('App\Garage', 'post_id');
    }

首先我有一些验证,然后我使用以下存储,我想简化为一行代码:

public function store(Request $request)
{
    // Validation has passed, insert data into database
   $listing = Listing::create($request->all());
   $listing->Garage()->create($request->all());
}

此外,如果我想 return 插入数据,我该怎么做,因为以下只是 return 列表模型而不是车库关系?是的,我知道我不会在现实世界的应用程序中这样做。

return \Response::json([
'message' => 'Post Created Succesfully',
'data' => $listing
]);

非常感谢任何帮助

方法链接

您的 store 方法看起来不错。不过,如果您不需要 listing 对象本身,您可以链接方法:

public function store(Request $request)
{
    // Validation has passed, insert data into database
   $garage = Listing::create($request->all())
              ->garage()->create($request->all();
}

但是如果你需要listing对象,跟之前一样就好了!

返回关系模型

如果你也想 return garage 关系模型,你可以像正常访问它一样简单地做到这一点 class 属性:

return \Response::json([
'message' => 'Post Created Succesfully',
'data' => [$listing, $listing->garage] 
                      //Access collection of garage relation ship
]);