循环通过mysql json数据

时间:2016-09-21 22:59:48

标签: php mysql json laravel

使用json列类型使用Laravel 5.3和MySql 5.7。我无法在我的视图中循环保存的Json。以下是我的设置的外观:

"Merchants"列中保存的JSON:

["stores", "website"]

使用Eloquent检索此JSON:

   $navigation = Merchant::select('merchants')
   ->where('user_id', Auth::user()->id)
   ->get();

   return View::make('dashboard', compact('navigation'));

最后我的查看:

  @foreach($navigation as $key => $value)
      <li><a href="#">{{$value->merchants}}</a></li>
  @endforeach

结果不会循环保存的JSON而只是显示保存的实际JSON,例如:["stores", "website"]但是我想循环它以便列出json数组中的每个值,例如:

<li>stores</li>
<li>website</li>

感谢。

请参阅我附加的转储:

dump

1 个答案:

答案 0 :(得分:1)

您需要在模型中cast it

protected $casts = [
    'merchants' => 'json'
];

修改

您可能需要更换刀片

@foreach($navigation as $value)
  @foreach($value->merchants as $merchant)
    <li><a href="#">{{$merchant}}</a></li>
  @endforeach
@endforeach