【发布时间】:2020-09-27 05:20:45
【问题描述】:
我有这段代码,我正在尝试填充一个 json,因为这是一个 API。
$mids = Message::where('sender', $user)
->orWhere('receipient', $user)
->lists('mid');
$last = Message::whereIn('mid', $mids)->orderBy('mid', 'desc')->first();
$final = $last->toArray();
return $final;
如果我不将 $last 设置为数组,那么它只会返回如下内容:
"incrementing": true,
"timestamps": true,
"exists": true
但是当我添加 toArray() 函数时,它只会不断加载和加载,直到服务器说超出执行时间。为什么?
其他信息
此代码在一个模型中,它的getLastMsgAttribute 我附加了last_msg
【问题讨论】:
-
toArray同时运行attributesToArray()和relationsToArray()并仅合并 2 个数组。您可以尝试分别运行它们(它们都是公共方法)并查看是否有效,它可能有助于调试出了什么问题。 -
@FDL
relationsToArray()加载页面,attributesToArray()没有,它只是继续加载。 -
作为旁注,我建议检查 $mids 不是一个空数组。如果 $mids 在空数组中,您的 whereIn 约束将抛出 SQLException。