php - Laravel 使用键返回对象:值而不是对象数组
问题描述
我正在尝试将 Json 响应作为对象数组返回。但相反,我得到了作为对象的响应。我有 condition_question 表,我在其中保存 question_id 和 condition_id。我想检索包含特定条件 ID 的所有问题。并按 answers_number 对它们进行排序。我是 Laravel 的新手,这是我的代码:
$conditionsIdArray = array($chosenConditionsIds);
$results = Question::whereIn('question_id', function ($query) use ($conditionsIdArray) {
$query->select('question_id')
->from('condition_question')
->whereIn('condition_id', $conditionsIdArray);
})->get()->sortByDesc('answers_number')->take(5);
return response()->json([
'questions' => $results
], 200);
我得到回应:
{
"questions": {
"0": {
"question_id": 842,
"question_title": "Qui tempora...",
"question_body": "Repellendus non sint...",
"image": "https://lorempixel.com/640/480/?18901",
"question_view_count": 17,
"votes_number": 9,
"answers_number": 9,
"id_user": 9930,
"created_at": "2019-09-07 09:59:05",
"updated_at": "2019-09-08 18:23:41"
},
"28": {
"question_id": 20346,
"question_title": "Quaerat facere...",
"question_body": "Repudiandae culpa ...",
"image": "https://lorempixel.com/640/480/?91963",
"question_view_count": 2,
"votes_number": 2,
"answers_number": 9,
"id_user": 3546,
"created_at": "2019-09-07 10:07:38",
"updated_at": "2019-09-07 10:07:38"
},etc
}
如您所见,我得到了对象。我不想要键/值,只是简单的对象类型问题数组。我现在挣扎了两天,尝试了一些不同的东西,比如 toArray() 但不知道如何解决它。任何帮助都将受到欢迎。
解决方案
如果您更改索引数组中的键,它会认为它有一个关联数组,因为排序和取 5 索引是关闭的。在Laravel
集合上有一个values()
方法,你可以在那里调用它来重新索引集合。
return response()->json([
'questions' => $results->values()
], 200);
推荐阅读
- windows - PROC_THREAD_ATTRIBUTE_HANDLE_LIST 对子进程标准输入、标准输出、标准错误、与 STARTF_USESTDHANDLES 的关系的影响
- python-3.x - 将单个 web 元素保存到 csv 文件或将显示数据抓取到 csv
- c++ - 编译 kbmMemTable 失败
- python - 熊猫:添加日期列
- python - Plotly:如何根据链接的下拉值自动更新 DatePickerRange 中的开始日期和结束日期?
- android - Wear OS 上的 XML 文件中的 Android 资源链接失败问题
- java - Image 和 JButton 不会同时出现
- docker - mariadb的docker-compose cat自定义conf?
- react-native - 动态数组在本机基础 DeckSwiper 中不起作用?
- python - Google OAuth2 - 错误:redirect_uri_mismatch