LARAVEL 5.5 E ACIMA
A diretiva @php blade não aceita mais tags embutidas. Em vez disso, use o formulário completo da diretiva:
@php
$i = 1
@endphp
LARAVEL 5.2 E ACIMA
Você pode apenas usar:
@php ($i = 1)
Ou você pode usá-lo em uma instrução de bloco:
@php
$i = 1
@endphp
LARAVEL 5
Estenda o Blade assim:
/*
|--------------------------------------------------------------------------
| Extend blade so we can define a variable
| <code>
| @define $variable = "whatever"
| </code>
|--------------------------------------------------------------------------
*/
\Blade::extend(function($value) {
return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value);
});
Em seguida, siga um destes procedimentos:
Solução rápida: se você é preguiçoso, basta colocar o código na função boot () do AppServiceProvider.php.
Solução mais agradável: crie um provedor de serviços próprio. Consulte https://stackoverflow.com/a/28641054/2169147 sobre como estender o blade no Laravel 5. É um pouco mais trabalhoso dessa maneira, mas é um bom exercício de como usar provedores :)
LARAVEL 4
Você pode simplesmente colocar o código acima na parte inferior de app / start / global.php (ou qualquer outro lugar, se achar que é melhor).
Após as alterações acima, você pode usar:
@define $i = 1
para definir uma variável.