使用Laravel刀片模板循环JSON内容的正确方法?

时间:2014-12-11 01:08:24

标签: php laravel blade

将以下JSON字符串传递给View后。我什么时候......

<p>{{ $sets }}</p>

我明白了......

[{"name":"A"},{"name":"B"}, ... ,{"name":"Z"}]

然而,当我尝试...

@foreach ($sets as $set)
    <p>{{ $set->name }}</p>
@endforeach

我收到错误,&#34;为foreach()&#34;提供的参数无效。

我很确定这是一个简单的问题,虽然我不确定是什么错误。

1 个答案:

答案 0 :(得分:0)

您是否使用Json_Decode创建$ sets变量?

尝试这样的方法以确保没有发生解析错误:

    $sets = json_decode($data);

    switch (json_last_error()) {

        case JSON_ERROR_DEPTH:
            $json_error = 'Maximum stack depth exceeded';
            break;
        case JSON_ERROR_STATE_MISMATCH:
            $json_error =  'Underflow or the modes mismatch';
            break;
        case JSON_ERROR_CTRL_CHAR:
            $json_error =  'Unexpected control character found';
            break;
        case JSON_ERROR_SYNTAX:
            $json_error =  'Syntax error, malformed JSON';
            break;
        case JSON_ERROR_UTF8:
            $json_error =  'Malformed UTF-8 characters, possibly incorrectly encoded';
            break;
    }

之后,尝试添加Var_dump($ set)以查看每个项目是对象还是数组。您描述的方式只有在它是一个对象时才有效。

 @foreach ($sets as $set)
   <?php var)dump($set); ?>
 @endforeach