Laravel - htmlspecialchars()は、パラメータ1が文字列であることを期待しますが、与えられたオブジェクトです。
このエラーが出ます。
htmlspecialchars() expects parameter 1 to be string, object given
I'm used in controller:
$data = '{"pr":{"code":"1"},"ac":[[{"icon":"web","action":"link","url":"asd"}]]}'
$newData = json_decode($data);
そして、それをビューに配列として送ります: 'data' => $newData そして、$dataをビューで使おうとすると、次のようなエラーが出ます。
既に$data->ac or $data['ac']を使ってみましたが、やはり同じです...。 何かいい方法はないでしょうか?
14
3
ブレードの echo
{{ $data }}
を使うと、自動的に出力がエスケープされます。エスケープできるのは文字列のみです。あなたのデータの中の$data->ac
は配列、$data
はオブジェクトですが、どちらもそのままではエコーできません。データをどのように出力すべきか、もっと具体的に説明する必要があります。具体的にどのようにするかは、あなたが何をしようとしているかによります。例えば、リンクを表示するには、{{ $data->ac[0][0]['url'] }}
とする必要があります(なぜ2つの入れ子になった配列があるのかはわかりませんが、あなたのデータ構造に従っているだけです)。もし、htmlからコントローラに完全な配列を送りたいのであれば、これを使うことができます。
blade.phpから。
コントローラで
serialize`を使うことができます。
しかし、この場合の最良の方法は、ブレードで
json_encode
メソッドを使用し、コントローラでjson_decode
を使用することです。