我使用mass assignment创建一个服务器模型,如下所示:
/**@var Model $server */
$server = Server::create($request->all());
return response($server->jsonSerialize(), Response::HTTP_CREATED);
现在我的服务器也有一个 status
Map到mysql的属性 status
mysql中默认值为0的列。
因为没有在我的请求属性中隐式地设置状态(因为默认值很好,所以不需要),所以它不会返回 status
属性。它将返回我的 $request->all()
不过。这些都是经过验证的,并且来自一个表单。
我怎样才能归还我的全部财产 $server
包含默认值的模型 status
? 我不得不启动另一个查询来重新获取刚刚创建的模型,这样我就可以包含 status
属性是否为mysql默认值?
2条答案
按热度按时间pepwfjgg1#
它不会在插入之后执行selecet,因此您不会得到db必须自行设置的任何值。但您可以刷新模型示例(使其选择该行):
z4iuyo4d2#
如果你把它当作
JSON
,您可以添加status
至protected $appends = ["status"];
```class Server extends Model {
protected $appends = ["status"];
...
}
return response()->json(["server" => $server], 200); // or whatever HTTP code you need.
$request->merge([
"status" => "active", // Or whatever the default is from the database
...
]);