【发布时间】:2020-05-03 03:56:18
【问题描述】:
我的问题。
我有 2 个 laravel 实例都在不同的 IP 上运行,但环境和版本是相同的。
& 我有 1 个与其他子模型相关的模型。
我想通过 API 传递整个对象并将其保存在另一端。
希望这能澄清我的问题。
【问题讨论】:
标签: laravel object serialization deserialization
我的问题。
我有 2 个 laravel 实例都在不同的 IP 上运行,但环境和版本是相同的。
& 我有 1 个与其他子模型相关的模型。
我想通过 API 传递整个对象并将其保存在另一端。
希望这能澄清我的问题。
【问题讨论】:
标签: laravel object serialization deserialization
据我了解,你可以做到。这是一个简单的潜行高峰:
$user = App\User::find(1);
return $user->toJson();
可以找到here。假设您有一个用户模型,并且您想从外部访问它。您可以创建一个 API 端点(如果需要,可以进行身份验证。但是,如果您的 API 端点直接访问任何模型,显然建议使用安全身份验证),它将接受用户 ID 并通过 API 响应传递整个用户对象。
【讨论】:
要将模型转换为 JSON,您应该使用 toJson 方法。 toJson 方法是递归的,所以所有的属性和关系都会被转换成 JSON。您还可以指定 PHP 支持的 JSON 编码选项:
//...
$users = App\User::with('posts')->all();
return $users->toJson();
//return $users->toJson(JSON_PRETTY_PRINT);
然后在使用 API 时,您可以获取已经通过数据主体原始请求发送的 json,例如
// First we fetch the Request instance
$request = Request::instance();
// Now we can get the content from it
$content = $request->getContent();
【讨论】: