Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Tôi phải đặt một số mã PHP bên trong mẫu Laravel 5 Blade. Giống như dưới đây

@foreach ($farmer->tasks as $task)
    @if ($task->pivot->due_at) < date(now))
        $style = 'alert alert-danger';
    @elseif ($task->pivot->due_at) > date(now))
        $style = 'alert alert-success';
    @else
        $style = '';
    @endif
@endforeach

Quy trình thực tế để đặt mã PHP bên trong mẫu Laravel 5 Blade là gì?

Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Đã hỏi ngày 27 tháng 6 năm 2015 lúc 10:53Jun 27, 2015 at 10:53

Theo tài liệu, trong Laravel 5.2 trở lên, bạn có thể sử dụng mã sau:

@php
{{-- PHP code here --}}
@endphp

Ngoài ra, bạn có thể mở rộng công cụ tạo mẫu lưỡi như mô tả ở đây.

Nếu cả hai giải pháp trên đều thích hợp, bạn sẽ bị mắc kẹt với các câu trả lời được đưa ra bởi Armen và Gonzalo.

Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Đã trả lời ngày 12 tháng 11 năm 2016 lúc 21:15Nov 12, 2016 at 21:15

user28864user28864user28864

3.2931 Huy hiệu vàng24 Huy hiệu bạc19 Huy hiệu đồng1 gold badge24 silver badges19 bronze badges

4

Chỉ cần mở và đóng thẻ PHP:

<?php $style = '...'; ?>

Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Đã trả lời ngày 28 tháng 6 năm 2015 lúc 5:16Jun 28, 2015 at 5:16

Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Armen Markossyanarmen MarkossyanArmen Markossyan

1.2041 Huy hiệu vàng12 Huy hiệu bạc25 Huy hiệu đồng1 gold badge12 silver badges25 bronze badges

1

Trong Laravel hiện đại (6/7), bạn nên làm điều này:

@php
   yourphpcode();
@endphp

Đã trả lời ngày 12 tháng 9 năm 2020 lúc 13:18Sep 12, 2020 at 13:18

Serg_xSerg_xSerg_x

1812 Huy hiệu bạc4 Huy hiệu đồng2 silver badges4 bronze badges

Công thức nấu ăn Laravel gợi ý một cách đơn giản, nhưng hiệu quả, để thực hiện nó mà không bao gồm các thẻ PHP:

{{--*/ $var = 'test' /*--}}

{{---}} hoạt động như một bình luận lưỡi / và / hoàn nguyên ảnh hưởng của nhận xét dẫn đến

<?php $var = 'test' ?>

Vấn đề là dài hơn bao gồm các thẻ PHP :-(

Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Đã trả lời ngày 28 tháng 12 năm 2015 lúc 13:45Dec 28, 2015 at 13:45

Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Gonzalo Caogonzalo CaoGonzalo Cao

2.1661 Huy hiệu vàng21 Huy hiệu bạc17 Huy hiệu đồng1 gold badge21 silver badges17 bronze badges

1

Trình làm mới mới sau đây sẽ sử dụng @{ }} để chấp nhận tất cả các mã PHP như gán biến, khai báo lớp, v.v.

Ví dụ. @{ $variable = 0; }} sẽ được tổng hợp thành <?php $variable=0; ?>

<?php

    use Illuminate\View\Compilers\BladeCompiler;

    class NewBladeCompiler extends BladeCompiler
    {

        /**
         * Get the echo methods in the proper order for compilation.
         *
         * @return array
         */
        function getEchoMethods()
        {
            $methods = [
                'compileRawEchos'     => strlen(stripcslashes($this->rawTags[0])),
                'compileEscapedEchos' => strlen(stripcslashes($this->escapedTags[0])),
                'compileRegularEchos' => strlen(stripcslashes($this->contentTags[0])),
                'compilePhpEchos'     => strlen(stripcslashes("@{"))
            ];

            uksort($methods, function ($method1, $method2) use ($methods) {

                // Ensure the longest tags are processed first
                if($methods[$method1] > $methods[$method2])
                {
                    return -1;
                }
                if($methods[$method1] < $methods[$method2])
                {
                    return 1;
                }

                // Otherwise give preference to raw tags (assuming they've overridden)
                if($method1 === 'compilePhpEchos')
                {
                    return -1;
                }
                if($method2 === 'compilePhpEchos')
                {
                    return 1;
                }
                if($method1 === 'compileRawEchos')
                {
                    return -1;
                }
                if($method2 === 'compileRawEchos')
                {
                    return 1;
                }
                if($method1 === 'compileEscapedEchos')
                {
                    return -1;
                }
                if($method2 === 'compileEscapedEchos')
                {
                    return 1;
                }
            });

            return $methods;
        }

        function compilePhpEchos( $value )
        {
            $pattern  = sprintf('/(@)?%s\s*(.+?)\s*%s(\r?\n)?/s', "@{", "}}");
            $callback = function ($matches) {
                $whitespace = empty($matches[3]) ? '' : $matches[3] . $matches[3];
                return $matches[1] ? substr($matches[0], 1) : '<?php ' . $matches[2] . ' ?>' . $whitespace;
            };
            return preg_replace_callback($pattern, $callback, $value);
        }

    }

?>

Hướng dẫn can we write php code in blade template laravel? - chúng ta có thể viết mã php trong Blade template laravel không?

Đã trả lời ngày 17 tháng 10 năm 2015 lúc 15:55Oct 17, 2015 at 15:55

ELITEXPELITEXPElitexp

511 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

0

Ưu điểm của mẫu Laravel Blade là gì?

Các mẫu lưỡi được lưu trữ trong thư mục /tài nguyên /xem.Ưu điểm chính của việc sử dụng mẫu Blade là chúng ta có thể tạo mẫu chính, có thể được mở rộng bằng các tệp khác.we can create the master template, which can be extended by other files.

Tôi có thể sử dụng Mẫu Blade mà không cần Laravel không?

Bạn có thể tải xuống lớp và bắt đầu sử dụng nó hoặc bạn có thể cài đặt thông qua trình soạn thảo.Nó tương thích 100% mà không có các tính năng riêng của Laravel (phần mở rộng).It's 100% compatible without the Laravel's own features (extensions).

Laravel Blade có nhanh không?

Tất cả các chế độ xem trong Laravel thường được xây dựng trong mẫu lưỡi.Blade Engine rất nhanh trong các chế độ xem kết xuất vì nó lưu trữ chế độ xem cho đến khi chúng được sửa đổi.Blade engine is fast in rendering views because it caches the view until they are modified.

Làm cách nào để thêm thẻ tập lệnh vào bố cục lưỡi?

Cho các tập lệnh tùy chỉnh trên trang cụ thể,..
Thêm @Yield ('Footer-scripts') vào bố cục/app.blade.php ..
Tạo một thư mục có tên 'SCRIPT' trong thư mục xem ..
Bên trong thư mục chế độ xem/script tạo tệp 'pizza-script.blade.php' và thêm nội dung tệp js bên trong