如何将 Laravel 集合数组转换为 json
Posted
技术标签:
【中文标题】如何将 Laravel 集合数组转换为 json【英文标题】:How to convert Laravel collection array to json 【发布时间】:2018-02-26 16:28:16 【问题描述】:如何将此 Laravel 集合数组转换为如下所示的 json 格式。
//All records from users table.
$users = DB::table('users')->get();
// Required json format.
return '
"data": [
"DT_RowId": "row_1",
"id": "Tiger",
"clear": "Nixon",
"fsssf": "System Architect",
"tex": "t.nixon@datatables.net",
"created_at": "Edinburgh",
"updated_at": "Edinburgh"
,
"DT_RowId": "row_2",
"id": "Tiger",
"clear": "Nixon",
"fsssf": "System Architect",
"tex": "t.nixon@datatables.net",
"created_at": "Edinburgh",
"updated_at": "Edinburgh"
],
"options": [],
"files": []
';
很抱歉这个基本问题,但我无法将它转换成这个 jso。
【问题讨论】:
$users 是一个集合,他有一个方法“->toJson()”。 【参考方案1】:看看documentation。
您可以使用 toJson(),将集合转换为 json 对象。
$users = DB::table('users')->get()->toJson();
dd($users);
您也可以使用 json_encode 函数以简单的 php 方式完成此操作
$users = json_encode($users);
看看这个link
问候和愉快的编码!
【讨论】:
【参考方案2】:如果您正在考虑使用刀片模板,您可以使用 @json
Blade directive,如下所示:
<script type="text/javascript">
var PARAMS = @json($params)
</script>
P.S.在 Laravel 5.6 中测试
【讨论】:
【参考方案3】:添加“使用响应;”
return Response::json([
'data' => $value
], 200);
希望这会有所帮助!
【讨论】:
这一定是最有用的,只需添加响应库就可以了【参考方案4】:你可以做几件事,你可以像这样使用默认方法 ->toJson() 和用户集合
$users = DB::table('users')->get();
$users->toJson();
如果您确实遇到问题,您可以使用 php build in json_encode 方法这里是完整文档http://php.net/manual/en/function.json-encode.php
$users = DB::table('users')->get();
json_encode($users)
希望这会有所帮助!
【讨论】:
【参考方案5】:如果我们是 laravel 5.5,那么你应该使用 eloquent-resources
【讨论】:
【参考方案6】:在 Laravel 中,您可以像这样轻松地序列化您的 php 对象:
public static function getLocataireByCin($cin)
return Locataire::where('cin', $cin)
->first()
->toJson(JSON_PRETTY_PRINT);
然后在前端检索它(例如使用 js/jquery):
$("#cinLocataire").keyup(function ()
$.ajax(
url: " route('Caisse.store') ",
type: "POST",
data:
cin: $(this).val()
,
success: function (locataireData)
var locataire = JSON.parse(locataireData); // <-- here
console.log(
locataire.nom
);
,
)
);
【讨论】:
以上是关于如何将 Laravel 集合数组转换为 json的主要内容,如果未能解决你的问题,请参考以下文章
将 Laravel 集合/数组转换为 Javascript 数组