LARAVEL 5.5 ขึ้นไป
คำสั่ง @php blade ไม่ยอมรับแท็กแบบอินไลน์ ใช้คำสั่งเต็มรูปแบบแทน:
@php
$i = 1
@endphp
LARAVEL 5.2 ขึ้นไป
คุณสามารถใช้:
@php ($i = 1)
หรือคุณสามารถใช้มันในคำสั่งบล็อก:
@php
$i = 1
@endphp
LARAVEL 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
โซลูชัน Nicer: สร้างผู้ให้บริการของตัวเอง ดูhttps://stackoverflow.com/a/28641054/2169147เกี่ยวกับวิธีการขยายเบลดใน Laravel 5 มันใช้งานได้ดีกว่านี้เล็กน้อย แต่เป็นการออกกำลังกายที่ดีในการใช้ผู้ให้บริการ :)
LARAVEL 4
คุณสามารถใส่รหัสด้านบนที่ด้านล่างของแอพ / start / global.php (หรือที่อื่น ๆ ถ้าคุณรู้สึกว่ามันดีกว่า)
หลังจากการเปลี่ยนแปลงข้างต้นคุณสามารถใช้:
@define $i = 1
เพื่อกำหนดตัวแปร