Bu hatayı alıyorum:
htmlspecialchars() expects parameter 1 to be string, object given
Denetleyicide kullanıyorum:
$data = '{"pr":{"code":"1"},"ac":[[{"icon":"web","action":"link","url":"asd"}]]}'
$newData = json_decode($data);
Ve bunu dizi olarak görünüme gönderiyorum: 'data' => $newData Ve $data'yı görünümde kullanmaya çalıştığımda, bana şu hatayı veriyor
Zaten $data->ac VEYA $data['ac'] kullanmayı denedim ama hala aynı ... Biraz yardım lütfen?
Bir blade echo {{ $data }}
kullandığınızda otomatik olarak çıktıdan kaçacaktır. Yalnızca dizelerden kaçabilir. Verilerinizde $data->ac
bir dizi ve $data
bir nesnedir, ikisi de olduğu gibi yankılanamaz. Verilerin nasıl çıktılanması gerektiği konusunda daha spesifik olmanız gerekir. Bunun tam olarak neye benzediği tamamen neyi başarmaya çalıştığınıza bağlıdır. Örneğin, bağlantıyı görüntülemek için {{ $data->ac[0][0]['url'] }}
yapmanız gerekir (neden iki iç içe diziniz olduğundan emin değilim ama sadece veri yapınızı takip ediyorum).
@foreach($data->ac['0'] as $link)
<a href="{{ $link['url'] }}">This is a link</a>
@endforeach
Eğer amacınız html'deki tüm diziyi denetleyiciye göndermekse, bunu kullanabilirsiniz:
blade.php'den:
<input type="hidden" name="quotation" value="{{ json_encode($quotation,TRUE)}}">
kontrolörde
public function Get(Request $req) {
$quotation = array('quotation' => json_decode($req->quotation));
//or
return view('quotation')->with('quotation',json_decode($req->quotation))
}
serialize
kullanabilirsiniz
<input type="hidden" name="quotation[]" value="{{serialize($quotation)}}">
Ancak bu durumda en iyi yol blade'inizde json_encode
yöntemini ve controller'da json_decode
yöntemini kullanmaktır.