Bạn không thể.
Như đã nêu trong tài liệu hướng dẫn:
Như chức năng PHP, macro không có quyền truy cập vào các mẫu hiện tại biến.
giải pháp duy nhất của bạn là phải vượt qua các tham số cho macro
:
{% import _self as flow %}
{{ flow.pagedurl(1, "Ligio") }}
{% macro pagedurl(page, myname) %}
Hi {{ myname }}! This is Page Num {{ page }}
{% endmacro %}
QUAN TRỌNG LƯU Ý:
Bạn có thể nhận thấy trong ví dụ của tôi, tôi gọi {% import _self as flow %}
.
Đây là một cái gì đó bạn PHẢI làm:
Khi bạn định nghĩa một macro trong các mẫu mà bạn sẽ sử dụng nó, bạn có thể bị cám dỗ để gọi trực tiếp thông qua vĩ mô _self.input() thay vì nhập nó; ngay cả khi có vẻ hiệu quả, đây chỉ là tác dụng phụ của của việc triển khai hiện tại và nó sẽ không hoạt động nữa trong Twig 2.x.
http://twig.sensiolabs.org/doc/tags/macro.html
Bạn đã thử đơn giản '{{myname}}' chưa? – Maerlyn
với {{myname}} Tôi không nằm trong phạm vi của biến ... Nó không hoạt động! – Ligio