【问题标题】:Laravel check variable passed from controller if not empty in view如果视图中不为空,Laravel 检查从控制器传递的变量
【发布时间】:2016-06-03 11:45:22
【问题描述】:

我有一个变量从我的控制器传递到我的视图。如果变量为空,我想检查我的视图如果它不为空,我会显示一条消息,我会显示一个 div。

这是我尝试过的,但它给了我一个语法错误:

@if(!empty({!! $json !!}))
  <div class=""></div>
@else
  <p>Empty.</p>
@endif

我也试过了

@if(!empty($json))

也不行。我看不到empty 消息

有人知道我在这里做错了什么吗?

非常感谢!

【问题讨论】:

  • 执行dd($json) 看看实际值是多少。

标签: php laravel blade


【解决方案1】:

你的变量是什么类型的?字符串?

试试

@if( !empty( json_decode( $json) ) )

【讨论】:

  • 好吧,很酷,这成功了!非常感谢!不知道它是否是 json 是否重要 :) 无论如何谢谢!
  • 我不认为它是真的,你只是有无效的语法。你不应该使用{!! $json !!} because as soon as you use @if() everything is in PHP and PHP doesn't know how to parse {!! !!}。您真正需要做的就是删除这些。
【解决方案2】:

您只需要:

<?php $json = json_decode($json, true) ?>

@if 之前的某处,因为您得到字符串 "[]" 而不是数组,因此您需要将 json 解析为数组。最好的地方是在控制器中进行。

你也不需要在@if 语句中转义它:

@if(!empty($json))

【讨论】:

  • 请尝试转储并粘贴您得到的内容
  • 我从转储"[]"得到这个
【解决方案3】:

试试这个:

@if(count($json) > 0)
  <div class=""></div>
@else
  <p>Empty.</p>
@endif

【讨论】:

    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 2015-10-01
    相关资源
    最近更新 更多