laravel刀片模板变量

时间:2014-10-14 04:20:59

标签: php laravel laravel-4 blade

在使用laravel刀片模板时,在输出中管理变量的批准方法是什么?

例如,我正在制作一个视图,显示每个农民即将到来的家务/任务。数据透视表包含任务的due_at日期时间字段,我想根据项目的过期,完成等情况更改项目的类别。

@foreach ($farmer->tasks as $task)
    @if ($task->pivot->due_at) < date(now))
        $style = 'alert alert-danger';
    @elseif ($task->pivot->due_at) > date(now))
        $style = 'alert alert-success';
    @else
        $style = '';
    @endif
    <div class="list-group-item {{ $style }}">{{$task->name}} <span class="glyphicon glyphicon-calendar"> {{ $task->pivot->due_at }}</span> <span class="glyphicon glyphicon-pencil"></span><span class="glyphicon glyphicon-trash"></span></div>
@endforeach 

此示例引发错误:Undefined variable: style (View: /home/vagrant/Code/app/views/farmers/show.blade.php)

我没有看到一个明显的方法来设置简单的代码块来设置变量,就像我在“普通”PHP视图中所做的那样,通过对{{{{{{{{{{ 1}}值。

这个逻辑应该转移到辅助函数还是什么?

2 个答案:

答案 0 :(得分:3)

假设due_at是时间戳。

@foreach ($farmer->tasks as $task)
    @if (Carbon::parse($task->pivot->due_at) < Carbon::now())
        <?php $style = 'alert alert-danger'; ?>
    @elseif (Carbon::parse($task->pivot->due_at) > Carbon::now())
        <?php $style = 'alert alert-success'; ?>
    @else
        <?php $style = ''; ?>
    @endif
    <div class="list-group-item {{ $style }}">{{$task->name}} <span class="glyphicon glyphicon-calendar"> {{ $task->pivot->due_at }}</span> <span class="glyphicon glyphicon-pencil"></span><span class="glyphicon glyphicon-trash"></span></div>
@endforeach 

答案 1 :(得分:0)

@Anam您的回答有效,但我会使用以下方法。

@ user101289假设您有默认布局并且它产生内容部分。因此,为了声明和使用变量,我建议您在内部模板文件中使用vars部分,并在顶部同时声明所有变量。然后使用它。由于我们不会产生vars部分,因此不会打印它。

这将帮助您跟踪所使用的变量及其标准方法,以便在顶部声明所有变量并在程序的其余部分中使用:

@extends('layouts.default') /* Your default layout template file. */
@section("vars")
  {{ $yourVar = 'Your value' }}
@endsection
@section("content") /* The content section which we will print */
    // Your other HTML and FORM code and you can use variables defined in **vars** section
@endsection
@stop