Php @定义叶片Laravel 4.2中不起作用的变量

Php @定义叶片Laravel 4.2中不起作用的变量,php,laravel,laravel-4,Php,Laravel,Laravel 4,尝试在blade文件中定义变量,但该变量无效: @define $i = 1 但尝试使用时,未定义变量$i出错 完整代码: @foreach($assigned as $task) @define $pcat = ""; @if($task->tc_name != $pcat) @else //code @endif @define $pcat = $task->tc_name @endforeach 不知道我哪里做错了:你需要像这样伸展

尝试在blade文件中定义变量,但该变量无效:

@define $i = 1  
但尝试使用时,未定义变量$i出错

完整代码:

@foreach($assigned as $task)  
  @define $pcat = "";
  @if($task->tc_name != $pcat)
  @else
       //code
  @endif
  @define $pcat = $task->tc_name
@endforeach

不知道我哪里做错了:

你需要像这样伸展刀片

像这样展开刀片:

/*
|--------------------------------------------------------------------------
| Extend blade so we can define a variable
| <code>
| @define $variable = "whatever"
| </code>
|--------------------------------------------------------------------------
*/

\Blade::extend(function($value) {
    return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value);
});
您可以将上述代码放在app/start/global.php的底部或任何其他地方,如果您觉得这样做更好的话

@define $i = 1  

试试这样的东西

@php 

$i=1;

@endphp

我想你可以试试这个:

<?php $i = 1; ?>

{{$i}}

希望这项工作为你

@define是您自己创建的指令吗?为什么使用laravel 4.2?我在过去3-4年的项目中工作,我们需要添加Blade::extend函数?它可以工作,但我不想编写核心php代码:您能解释一下这有什么帮助吗?这样一个简短的回答可能是正确的,但并不是很有帮助。注意:@php指令是在Laravel5.2中实现的,所以它在Laravel4中不起作用。
{{--*/$i=1/*--}}

{{$i}}