laravel mysql json_mysql - laravel php 数据存储 Array toJson

$goods = "";

foreach($carts as $key => $c){

$good = Goods::where(["product_id" => $c->product_id,"merchant_id" => $c->merchant_id])->first();

$good -> number = $c->number;

$goods[] = $good;

}

$order = new Order;

$order -> json = $goods;

if( $order->save()){

return response()->json(array( 'status' => 1, 'msg' => "下单成功"));

}else{

return Redirect::back()->withInput()->withErrors('保存失败!');

}

$goods 的到的数据 是一组数组

保存到数据库是就成了 Array 了

bVmJPC

然后 用 json 转一下

$goods = $goods->toJson();

toJson() 报错了

Call to a member function toJson() on array

有大神可以指导一下吗

回复内容:

$goods = "";

foreach($carts as $key => $c){

$good = Goods::where(["product_id" => $c->product_id,"merchant_id" => $c->merchant_id])->first();

$good -> number = $c->number;

$goods[] = $good;

}

$order = new Order;

$order -> json = $goods;

if( $order->save()){

return response()->json(array( 'status' => 1, 'msg' => "下单成功"));

}else{

return Redirect::back()->withInput()->withErrors('保存失败!');

}

$goods 的到的数据 是一组数组

保存到数据库是就成了 Array 了

bVmJPC

然后 用 json 转一下

$goods = $goods->toJson();

toJson() 报错了

Call to a member function toJson() on array

有大神可以指导一下吗

从你的foreach来看,最后的$goods是一个普通的数组,这个数组跟toJSON没有什么必然联系,在我的记忆中,toJSON应该不是php内置的吧。

想到的解决方案:

$order -> json = json_encode($goods);

对于上面的代码,还有以下的建议:

foreach($carts as $key => $c){

$good = Goods::where(["product_id" => $c->product_id,"merchant_id" => $c->merchant_id])->first();

$good -> number = $c->number;

$goods[] = $good;

}

上面这一段,我觉得你好好看看Eloquent的Relationship部分,这个应该会很好地解决了。

第二,else关键字其实很多时候是可以不用的:

if( $order->save() ) {

return response()->json(array( 'status' => 1, 'msg' => "下单成功"));

}

return Redirect::back()->withInput()->withErrors('保存失败!');

以上的代码应该也是行得通的

赞楼上,json_encode()是php最常用的内置函数之一,lz不要太过于依赖框架了

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

PHPMySQL 是开发 Web 应用程序时常用的技术,而 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。将 MySQL 数据库中的数据转换为 JSON 格式,可以方便地在前端 JavaScript 中使用这些数据。 以下是一个简单的示例,展示如何使用 PHPMySQL 数据库中获取数据并将其转换为 JSON 格式: 1. **连接到 MySQL 数据库**: 首先,需要使用 `mysqli` 或 `PDO` 扩展来连接到 MySQL 数据库。 2. **执行 SQL 查询**: 使用 SQL 查询从数据库中获取所需的数据。 3. **处理查询结果**: 将查询结果转换为关联数组或对象数组。 4. **编码为 JSON**: 使用 `json_encode` 函数将数组或对象数组编码为 JSON 格式。 以下是一个具体的代码示例: ```php <?php // 配置数据库连接参数 $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test_db"; // 创建数据库连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 定义要执行的 SQL 查询 $sql = "SELECT id, name, email FROM users"; $result = $conn->query($sql); // 初始化一个空数组来存储结果 $data = array(); // 检查是否有结果并处理每一行数据 if ($result->num_rows > 0) { // 输出每行数据 while($row = $result->fetch_assoc()) { $data[] = $row; // 将每行数据添加到数组中 } } else { echo "0 结果"; } // 关闭数据库连接 $conn->close(); // 将数组编码为 JSON 格式 $json_data = json_encode($data, JSON_UNESCAPED_UNICODE); // 输出 JSON 数据 header('Content-Type: application/json'); echo $json_data; ?> ``` ### 解释: 1. **数据库连接**:使用 `mysqli` 扩展连接到 MySQL 数据库。 2. **SQL 查询**:执行一个简单的 `SELECT` 查询,从 `users` 表中获取 `id`, `name`, 和 `email` 列的数据。 3. **处理结果**:使用 `fetch_assoc()` 方法逐行获取查询结果,并将每行数据存储到 `$data` 数组中。 4. **JSON 编码**:使用 `json_encode` 函数将数组编码为 JSON 格式,并设置 `JSON_UNESCAPED_UNICODE` 选项以确保中文字符正确显示。 5. **输出 JSON**:设置响应头为 `application/json`,然后输出 JSON 数据。 这样,你就可以通过访问这个 PHP 脚本来获取数据库中的用户数据,并以 JSON 格式返回给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值