[英]How to convert a mysql json field to a javascript Object with laravel?
[英]Convert mysql json field to object in Laravel 5.5
這是OrderDetails模型
class OrderDetail extends Model
{
protected $casts = [
'details' => 'array',
];
}
這是控制器
class HomeController extends Controller
{
public function index()
{
$result = OrderDetail::where('details->options->size', 'L')
->limit(10)
->get();
return view('home', compact(['result']));
}
}
和主視圖
@if($result->count())
@foreach($result as $item)
<li>{{ $item->details }}</li>
@endforeach
@endif
我收到這個錯誤
htmlspecialchars()期望參數1為字符串,給定數組(查看:/ *** / resources / views / home.blade.php)
但是,如果我從模型中刪除受保護的$ casts [] ,它會向我顯示JSON,我如何將詳細信息字段轉換為同一查詢中具有id和order_id字段的對象?
編輯
現在,我得到了從JSON到對象的轉換,插入帶有json_decode
的foreach
並從模型中刪除了protected $casts[]
,是否有更好的方法呢?
class HomeController extends Controller
{
public function index()
{
$result = OrderDetail::where('details->options->size', 'L')
->limit(10)
->get();
foreach($result as $key => $item){
$result[$key]->details = json_decode($item->details);
}
return view('home', compact('result'));
}
}
從compact
功能中刪除方括號
return view('home', compact('result'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.