LARAVEL 5.5 VÀ LÊN
Lệnh @php blade không còn chấp nhận thẻ nội tuyến. Thay vào đó, hãy sử dụng hình thức đầy đủ của lệnh:
@php
$i = 1
@endphp
LARAVEL 5.2 VÀ LÊN
Bạn chỉ có thể sử dụng:
@php ($i = 1)
Hoặc bạn có thể sử dụng nó trong một tuyên bố khối:
@php
$i = 1
@endphp
LỚN 5
Mở rộng Blade như thế này:
/*
|--------------------------------------------------------------------------
| Extend blade so we can define a variable
| <code>
| @define $variable = "whatever"
| </code>
|--------------------------------------------------------------------------
*/
\Blade::extend(function($value) {
return preg_replace('/\@define(.+)/', '<?php ${1}; ?>', $value);
});
Sau đó thực hiện một trong những điều sau đây:
Giải pháp nhanh: Nếu bạn lười biếng, chỉ cần đặt mã vào hàm boot () của AppServiceProvider.php.
Giải pháp Nicer: Tạo một nhà cung cấp dịch vụ riêng. Xem https://stackoverflow.com/a/28641054/2169147 về cách mở rộng lưỡi kiếm trong Laravel 5. Cách này hiệu quả hơn một chút theo cách này, nhưng là một bài tập tốt về cách sử dụng Nhà cung cấp :)
LỚN 4
Bạn chỉ có thể đặt mã ở trên dưới cùng của ứng dụng / start / global.php (hoặc bất kỳ nơi nào khác nếu bạn cảm thấy điều đó tốt hơn).
Sau những thay đổi trên, bạn có thể sử dụng:
@define $i = 1
để xác định một biến.