I stored array of JSON in mysql as a string
[{"id": 1, "mark": 5}, {"id": 2, "mark": 3}, {"id": 3, "mark": 2}]
When I try to use it
@foreach ($places as $place)
@foreach ($place->rates as $rate)
{{var_dump($rate->marks)}}
@endforeach
@endforeach
There is a problem. $rate->marks is a string. How shoul I decode it to array?
UPD
of course I tried to use json_decode, but it returns error
htmlentities() expects parameter 1 to be string, array given
SOLVED
I', stupid. Problem was not in json_decode. I tried to print result with {{ }} which needs string as argument.
There are no rate
in your json, and also no marks
.
$json = '[{"id": 1, "mark": 5}, {"id": 2, "mark": 3}, {"id": 3, "mark": 2}]';
$places = json_decode ($json);
foreach ($places as $place)
var_dump($place->mark);
Design the code for the Laravel, Online Debug does't have that feature.
Let me know.
You need to json_decode
your marks and then iterate them as array. Something like this (I don't know if it works in Laravel but you can get an idea):
@foreach ($places as $place)
@foreach ($place->rates as $rate)
@foreach (json_decode($rate->marks) as $mark)
{{var_dump($mark->mark)}}
@endforeach
@endforeach
@endforeach
<?php
$str = '[{"id": 1, "mark": 5}, {"id": 2, "mark": 3}, {"id": 3, "mark": 2}]';
$places = json_decode($str);
foreach ($places as $place) {
echo 'id=>' . $place->id;
echo 'mark=>' . $place->mark;
echo "<br>";
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.