gpt4 book ai didi

laravel - 将 Laravel-4 Eloquent 查询结果转换为数组

转载 作者:行者123 更新时间:2023-12-03 18:36:00 28 4
gpt4 key购买 nike

我试图让我的路线在数据库中插入一个新行,如果成功返回一些 JSON 中的记录(带有新的主键 ID)。我收到以下错误:

{
"error":
{
"type":"BadMethodCallException",
"message":"Call to undefined method Illuminate\\Database\\Query\\Builder::to_array()",
"file":"\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Query\\Builder.php",
"line":1418
}

}

这是我的路线:
Route::post('/client/create', function()
{
$client = Client::create(Input::all());
if($client)
{
return json_encode(array('Result' => 'OK', 'Record' => $client->to_array()));
}
else
{
return json_encode(array('Result' => 'ERROR', 'Message' => 'Error Inserting Record =('));
}
});

根据我读过的 Laravel 文档,您应该使用 ->to_array() 将模型转换为数组,如果成功插入, ::create 将返回模型的一个实例。我检查了数据库,记录插入得很好。

最佳答案

默认情况下,如果您要直接返回 Eloquent 模型,它会将模型转换为它的 JSON 表示。这是因为每个模型上的 __toString 魔术方法使用 toJson 方法将模型作为 JSON 返回。

因此,该模型同时实现了 ArrayableInterfaceJsonableInterface 。这意味着您可以直接在模型上调用 toJsontoArray

现在您可以将列标记为隐藏。这意味着当一个模型被转换成它的数组或 JSON 表示时,一些列会被删除(想想可公开访问的 API,你不希望密码出现!)。我不完全确定,但也许您的模型的 ID 被隐藏了。

归根结底,您需要做的就是返回实例。

return $client;

它将自动为您转换为 JSON。

关于laravel - 将 Laravel-4 Eloquent 查询结果转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16578662/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com