在使用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}}值。
这个逻辑应该转移到辅助函数还是什么?
答案 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