Search code examples
laravelpug

Unescaped pug attribute not processed by laravel blade


I'm using Laravel Pug https://github.com/BKWLD/laravel-pug, and the file is named *.pug.blade.php. I'm trying to set an attribute value.

|   <?php $x = "any"; ?>
div(class!="{{ $x }}")
    |   {{ $x }}

the output html is

<div class="{{ $x }}">any</div>

Solution

  • Interestingly, in attribute, the php variable is accessed with no < ? php ? > or {{ }} enclosures, just like javascript variables

    |   <?php $x = "any"; ?>
    div(class=$x)
        |   {{ $x }}
    

    the HTML output

    <div class="any">any</div>
    

    Also, the dollar sign can be omitted, and interpolation can be used

    |   <?php $x = "any"; ?>
    div(class = x + "test")
        |   {{ $x }}
    

    the HTML output

    <div class="anytest">any</div>