首页 > 后端开发 > php教程 > mysql - laravel php 数据存储 Array toJson

mysql - laravel php 数据存储 Array toJson

WBOY
发布: 2016-06-06 20:31:29
原创
1819 人浏览过

<code>$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('保存失败!');
  }
</code>
登录后复制
登录后复制

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

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

mysql - laravel php 数据存储 Array toJson

然后 用 json 转一下

<code>$goods = $goods->toJson();

</code>
登录后复制
登录后复制

toJson() 报错了

Call to a member function toJson() on array

有大神可以指导一下吗

回复内容:

<code>$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('保存失败!');
  }
</code>
登录后复制
登录后复制

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

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

mysql - laravel php 数据存储 Array toJson

然后 用 json 转一下

<code>$goods = $goods->toJson();

</code>
登录后复制
登录后复制

toJson() 报错了

Call to a member function toJson() on array

有大神可以指导一下吗

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

想到的解决方案:

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

</code>
登录后复制

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

<code>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;
}

</code>
登录后复制

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

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

<code>if( $order->save() ) {
       return response()->json(array( 'status' => 1, 'msg' => "下单成功"));
  }

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

</code>
登录后复制

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

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板