🏰【Laravel6】MariaDBから取得したJSON型の任意の値をBladeで表示する
環境
PHP 7.3.10
Laravel 6.5.0
MariaDB
やりたいこと
MariaDBのに下記のようなデータがあり、
その内のcontentカラム(JSON型)のデータからvalueの内容である
「テストの内容です🐾」や「2の内容!!」をBladeテンプレートに直接表示したい
id | content | del_flg |
---|---|---|
1 | {"data_kind": "1", "value": "テストの内容です🐾"} | 0 |
2 | {"data_kind": "2", "value": "2の内容!!"} | 0 |
3 | {"data_kind": "1", "value": "削除済データ😭😭😭"} | 1 |
本来であればVue.jsやReactとかで取得データを処理して表示するのが賢い方法だと思うが
それ以前の環境とかで無理やり表示したいことがあった
やったこと
COntrollerでは普通にJSONの文字列としてデータ取得しでViewに渡す
Viewでは受け取ったデータをjson_decode()して表示する
app/Http/Controllers/testController.php
/**
* 画面表示
*/
public function index() {
// 対象データ取得
$hogeTalks = DB::table('hoge_talks')
->select('*')
->where('del_flg', 0)
->get();
// Viewにデータ渡し
return view('test.index', [
'talks' => $hogeTalks,
]);
}
resources/views/test/index.blade.php
{{ json_decode($talks->content)->value }}
結果
content内のvalueの値のみがテンプレートに表示されます
同様にアロー演算子の先をdata_kindに変更等、任意のkeyに変更して使用できます
Author And Source
この問題について(🏰【Laravel6】MariaDBから取得したJSON型の任意の値をBladeで表示する), 我々は、より多くの情報をここで見つけました https://qiita.com/eltociear/items/b0a3a86bef9659ca34dd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .