【问题标题】:routing to a view without passing variables - laravel在不传递变量的情况下路由到视图 - laravel
【发布时间】:2016-11-01 17:49:27
【问题描述】:

我是 Laravel 的新手。 在 question.blade 视图中,我从控制器收到两个变量,如下所示:

  1. @foreach($answer 为 $answers)
  2. {{$post->body}}

有时我想被路由到这个 question.blade 视图,但不传递一个或两个变量。 我注意到,例如,如果我想通常链接到此视图以查看其内容,我会收到此错误:

未定义变量:答案(查看:D:\wamp\www\xxxxxxx\resources\views\Question.blade.php)

有没有办法告诉刀片仅在用户通过特定控制器=>方法路由时期望变量,而在用户通过其他方法路由时不期望变量?

我希望这很清楚:)

【问题讨论】:

  • 为什么不检查指定的变量是否存在?
  • 你能给我一个非常简单的示例代码吗?在哪里做这个检查?

标签: php laravel


【解决方案1】:

简单的方法是检查所需的变量是否存在:

@if (isset($answers))
    @foreach ($answers as $answer)
        ...
    @endforeach
@endif

{{ isset($post) ? $post->body : '' }}

【讨论】:

    【解决方案2】:

    对于具有可变数据的视图部分,您可以将其分离为部分刀片视图文件。然后你检查它是否存在。或计算数组。

    @if(count($array))
        <div class="col-xs-12" style="margin: auto;">
            @include('partials.myview')
        </div>
    @endif
    

    最好给变量或数组一个空值,以避免任何原因的错误。

    【讨论】:

      猜你喜欢
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多