ЛАРАВЕЛ 5.5 і вище
Директива @php blade більше не приймає вбудовані теги. Натомість використовуйте повну форму директиви:
@php
$i = 1
@endphp
LARAVEL 5.2 І Вгору
Ви можете просто використовувати:
@php ($i = 1)
Або ви можете використовувати його в операторі блоку:
@php
$i = 1
@endphp
ЛАРАВЕЛ 5
Розтягніть лезо так:
/*
|--------------------------------------------------------------------------
| Extend blade so we can define a variable
| <code>
| @define $variable = "whatever"
| </code>
|--------------------------------------------------------------------------
*/
\Blade::extend(function($value) {
return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value);
});
Потім виконайте одну з наступних дій:
Швидке рішення: Якщо вам лінь, просто поставте код у функцію boot () AppServiceProvider.php.
Приємніше рішення: Створіть власного постачальника послуг. Дивіться https://stackoverflow.com/a/28641054/2169147 про те, як подовжити лезо в Laravel 5. Це трохи більше роботи, але хороша вправа щодо використання Провайдерів :)
ЛАРАВЕЛЬ 4
Ви можете просто поставити вищезазначений код у нижній частині програми / start / global.php (або будь-якого іншого місця, якщо вам здається, що це краще).
Після вищезазначених змін ви можете використовувати:
@define $i = 1
визначити змінну.