Laravel根据json

时间:2018-10-07 15:48:01

标签: mysql json laravel

以下代码在Laravel框架中进行编码:

查询

$shipping = DB::table('shipping')->where('country',$delivery->country)->first();
$data= json_decode(json_encode($shipping),true);

结果

array (
  'id' => 3,
  'carrier' => 'EN',
  'country' => 'AU',
  'rates_json' => '{"rates": [{"international": [{"zone4": [{"to_kg": "2", "total": "1", "from_kg": "1"}, {"to_kg": "4", "total": "2", "from_kg": "3"}]}]}]}',
)  

在MySQL数据库中,我将“ rates_json”存储在“ JSON”数据类型列中。属性“ from_kg”和“ to_kg”是一个范围。

如果值在范围之间,我打算检索总数。例如,如果值1.5在1和2之间,则总数为1。

感谢您的帮助。

谢谢。

1 个答案:

答案 0 :(得分:2)

由于您的问题不清楚,
我只能给您一个提示,您可以做什么。

foreach (json_decode($data['rates_json'])->rates as $rates) {
    foreach ($rates->international as $international) {
        foreach ($international->zone4 as $zone) {
            if ($zone->from_kg <= $zone->total &&  $zone->total <= $zone->to_kg) 
            {
                // do whatever you want here.
                dump($zone->total);
            }
        }
    }
}

请让我知道任何调整。