Laravel5.4存储质量分配模型和关系



我不确定在 Laravel 5.4 中插入质量分配关系时的最佳实践 - 我是框架的新手。下面的代码工作正常,但是你能告诉我有没有办法简单地进入一行(插入关系(?

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

我有一个列表模型,具有一个关系:

    public function garage()
    {
       return $this->hasOne('AppGarage', '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 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();
}

但是,如果您需要列表对象,则可以像以前一样

返回关系模型

如果你也想返回garage关系模型,你可以简单地通过像普通类属性一样访问它来做到这一点:

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

最新更新