将元标记关键字显示为来自数据库的 JSON 数据似乎不起作用
Displaying Meta Tag Keywords as JSON Data From Database Not Seem To Be Working
我正在使用 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 数据作为关键字标签?
你可以在那里使用 Laravel Casting。
只需 cast
您在相应模型中的专栏。因此它会自动将数据存储在 JSON
中,并在检索时自动将其转换为 PHP 数组。
protected $casts = [
'prd_meta_keywords' => 'array',
];
检索数组后,您可以轻松地在 meta 中内爆,
<meta name="keywords" content="{{ ($product->prd_meta_keywords) ? implode(",", $product->prd_meta_keywords) : ''}}">
让我知道结果。
我正在使用 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 数据作为关键字标签?
你可以在那里使用 Laravel Casting。
只需 cast
您在相应模型中的专栏。因此它会自动将数据存储在 JSON
中,并在检索时自动将其转换为 PHP 数组。
protected $casts = [
'prd_meta_keywords' => 'array',
];
检索数组后,您可以轻松地在 meta 中内爆,
<meta name="keywords" content="{{ ($product->prd_meta_keywords) ? implode(",", $product->prd_meta_keywords) : ''}}">
让我知道结果。