I have this part of code:
$seller = Seller::where('tel', '=', $request->tel)->where('confirmed', '=', 1)->first();
if($seller){
$seller = Seller::where('tel', $request->tel)->update($input); //update
return response()->json(['message'=>'Seller Updated successfully!', 'data'=> $seller], 200);
} else {
$seller = Seller::create($input); //create
return response()->json(['message'=>'Seller created successfully!', 'data'=> $seller], 200);
}
现在想在响应中返回插入或更新的数据,但是在查看了很多帖子之后,所有尝试都失败了,我该怎么办?而且不能使用上次插入的id。
但是只返回布尔值:
{
"message": "Seller updated successfully!",
"data": 1
}
如何在Laravel Eloquent ORM中获取最后插入的ID
大多数主题想要返回id
,但我想要所有数据。
update
和create
当成相同的操作,但它们并不一样(https://laravel.com/docs/8.x/eloquent#inserts)。`create` 返回新建的模型,正如你所期望的那样,但是update
返回一个基于更新成功与否的布尔值。 - Brian Thompson$seller
,所以不要重新分配它。 - Brian Thompson$seller = Seller::where('tel', '=', $request->tel)->where('confirmed', '=', 1)->first()
- Jack The Bakerupdate()
成功时返回的值。如果您需要确保返回更新后的数据,则可以在更新方法(不将其分配给$seller
)后调用$seller->fresh()
,然后再将其返回。 - Brian Thompsonfresh()
但是返回错误。 - Jack The Baker