我正在使用 Laravel 5.8,我想將我的頁面元關鍵字更新為 JSON 資料。
所以我創建了一個名為的新列prd_meta_keywords并將其結構設定為JSON.
現在我可以像這個例子一樣成功地將 JSON 資料插入到這個列中:
[
"video product",
"new product"
]
為了在 Blade 上檢索這些資料,我這樣做了:
@section('meta')
<meta name="keywords" content="@if(!empty($product->prd_meta_keywords)) @if(is_array($product->prd_meta_keywords) || is_object($product->prd_meta_keywords)) @foreach(json_decode($product->prd_meta_keywords) as $keyword) {{$keyword}}{{$loop->remaining ? ',' : ''}} @endforeach @endif @endif">
@endsection
但是正如您所看到的,它不起作用并且不會在頁面源代碼上顯示關鍵字:
<meta name="keywords" content=" ">
但是我可以正確地從@dd(json_decode($product->prd_meta_keywords)).
那么這里出了什么問題呢?如何在 Blade 中正確檢索此 JSON 資料作為關鍵字標簽?
uj5u.com熱心網友回復:
你可以在那里使用Laravel Casting。
只是cast您在相應模型中的列。所以它會自動存盤資料,JSON并在檢索時自動轉換為 PHP 陣列。
protected $casts = [
'prd_meta_keywords' => 'array',
];
檢索陣列后,您可以輕松地在元資料中內爆,
<meta name="keywords" content="{{ ($product->prd_meta_keywords) ? implode(",", $product->prd_meta_keywords) : ''}}">
讓我知道結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/380504.html
標籤:php json 拉拉维尔 元标签 laravel-5.8
上一篇:我在Laravel中有書籍和作者的多對多關系,需要檢查作者是否已經存在于資料庫中,直到創建和更新書籍
下一篇:設定檔案名laravel
