【问题标题】:Select value from JSON inside Laravel Blade从 Laravel Blade 中的 JSON 中选择值
【发布时间】:2017-10-08 10:33:44
【问题描述】:

我将 laravel 与刀片和 vuejs 一起使用。使用控制器作为列表,我将收到正确的响应,其中包含要显示的所有用户数据。

其中一些字段是 json 数据,我无法理解如何检索单个值。

`@foreach ($lista as $freelance)
  <md-table-row>
    <md-table-cell>
      {{ $freelance->regione }}
     </md-table-cell>
  </md-table-row>
@endforeach`

$freelance->regione 是一个 JSON,在页面中正确显示为:

`{"text": "Veneto", "value": "Veneto"}`

我的问题是,如何获取 JSON 响应的单个值而不是所有数据?最好没有循环...我知道我可以使用一个新的循环,但可能没有..

【问题讨论】:

    标签: php json laravel vuejs2 laravel-blade


    【解决方案1】:

    在传递 $lista 变量之前在您的控制器中尝试此操作以查看执行此操作。

    foreach($lista as list)
    {
    
     //we will decode the variable befoe passing it to view
     $list->regione = json_decode($list->regione, true);
    
    
    }
    

    然后将变量传递给您的视图,例如:

        return View::make('your_view_name', compact('lista'));
    

    然后在您的刀片视图中。

    `@foreach ($lista as $freelance)
      <md-table-row>
        <md-table-cell>
          {{ $freelance->regione['text'] }}
         </md-table-cell>
        <md-table-cell>
          {{ $freelance->regione['value'] }}
         </md-table-cell>
      </md-table-row>
    @endforeach`
    

    【讨论】:

    • 看起来不错 Sapnesh...我已经按照您所说的做了,并且在列表控制器中我看到了正确的值...不幸的是 compact($lista) 向我抛出了这个错误:调用数组上的成员函数 total()...
    • @Murphz 哦,对不起,你不需要在使用 compact 时包含$,这是一个错字。现在更新了
    • 那是 Sapnesh,它有效!我不得不纠正您代码中的一些错误,但也许这只是我的平台。 json_decode 结果不能应用于 $list->regione 因为它只接受字符串而不接受数组,使用临时值解决了它。之后,使用 compact('lista') 我现在可以使用 $freelance->regione 在刀片模板中检索正确的值...再次感谢先生!
    【解决方案2】:

    laravel 刀片模板有一些功能可以直接使用。您需要对 json 字符串进行解码才能获取其中的值。

    @foreach ($lista as $freelance)
     <md-table-row>
        <md-table-cell>
            {{ json_decode($freelance->regione)->value }}
        </md-table-cell>
     </md-table-row>
    @endforeach
    

    【讨论】:

    • 这可能是因为循环中的某些区域 json 字符串可能不包含 value 键
    【解决方案3】:

    可以使用json_decode来解析json字符串,json解析参考this

    {{ json_decode($freelance->regione, true)['value'] }}
    

    【讨论】:

    • 是的,试过了..但是刀片内部对我不起作用,在 Sapnesh 写的控制器中使用 json_decode 似乎效果很好......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2014-08-25
    • 2018-03-31
    • 1970-01-01
    • 2018-11-28
    相关资源
    最近更新 更多