简体   繁体   English

Jade中的多行PHP脚本

[英]Multiline PHP script in Jade

I'm building a website with Jade and PHP, and I can't include multiline PHP scripts in my Jade file because it throws an indent error. 我正在使用Jade和PHP构建网站,并且无法在Jade文件中包含多行PHP脚本,因为它会引发缩进错误。

This would be an example of my code: 这将是我的代码的示例:

        p.base Somos una empresa de distribución de Temped ea nos mi, sequam autecer spernat essimos dolorepud
        ul.grilla-productos-home 
            <?php
                $sql        = "SELECT a.IdProducto,a.NombreCorto,a.Descripcion as Descripcion,a.precioUnitario,a.Imagen,b.Descripcion as Categoria,c.Descripcion as SubCategoria FROM productos a, categoria b, subcategoria c WHERE a.IdCategoria=b.idCategoria AND a.IdSubCategoria=c.IdSubCategoria limit 12";
                $resultados = $pdo->query($sql);
                while ($registro = $resultados->fetch(PDO::FETCH_ASSOC)) {
                echo "<li class='producto'><ul class='producto-componentes'><li class='imagen-producto'><img src=" . $registro['Imagen'] . "alt='Sanitarios'/></li><li class='titulo-producto'>" . $registro["NombreCorto"] . "</li></li><li class='Material-producto'><p class='titulo-divisor-producto'>Material</p><p class='material-producto'>" . $registro['Descripcion'] . "</p></li><li class='precio-producto'>$" . $registro['precioUnitario'] . "</li><a href='detalle.php?Id=" . $registro['IdProducto'] . "'class='cta-ghost main'>Ver detalles</a> </ul></li>";
                }
            ?> 
            li.producto

When it tries to compile the code above, it throws this error : 当尝试编译上面的代码时,它将引发以下错误

unexpected token "indent"

Pointed at the second line of my script ("$sql...") 指向我脚本的第二行(“ $ sql ...”)

Due to this issue, i'm forced to minify the scripts to a single line, which makes them really hard to edit afterwards. 由于这个问题, 我被迫将脚本缩小为一行, 这使得它们之后真的很难编辑

Is there a way I can include multiline inline scripts in a Jade template? 有没有一种方法可以在Jade模板中包含多行内联脚本? Is there a better practice to make PHP scripts work in Jade? 是否有更好的做法使PHP脚本在Jade中工作?

Thanks! 谢谢!

Just prefix your php as plain text 只是将您的php作为纯文本前缀

p.base Somos una empresa de distribución de Temped ea nos mi, sequam autecer spernat essimos dolorepud
  ul.grilla-productos-home  
  | <?php
  |              $sql        = "SELECT a.IdProducto,a.NombreCorto,a.Descripcion as Descripcion,a.precioUnitario,a.Imagen,b.Descripcion as Categoria,c.Descripcion as SubCategoria FROM productos a, categoria b, subcategoria c WHERE a.IdCategoria=b.idCategoria AND a.IdSubCategoria=c.IdSubCategoria limit 12";
  |              $resultados = $pdo->query($sql);
  |              while ($registro = $resultados->fetch(PDO::FETCH_ASSOC)) {
  |                echo "<li class='producto'><ul class='producto-componentes'><li class='imagen-producto'><img src=" . $registro['Imagen'] . "alt='Sanitarios'/></li><li class='titulo-producto'>" . $registro["NombreCorto"] . "</li></li><li class='Material-producto'><p class='titulo-divisor-producto'>Material</p><p class='material-producto'>" . $registro['Descripcion'] . "</p></li><li class='precio-producto'>$" . $registro['precioUnitario'] . "</li><a href='detalle.php?Id=" . $registro['IdProducto'] . "'class='cta-ghost main'>Ver detalles</a> </ul></li>";
  |              }
  |          ?> 
  li.producto

wich will produce 将产生

<p class="base">Somos una empresa de distribución de Temped ea nos mi, sequam autecer spernat essimos dolorepud
  <ul class="grilla-productos-home"> </ul><?php
               $sql        = "SELECT a.IdProducto,a.NombreCorto,a.Descripcion as Descripcion,a.precioUnitario,a.Imagen,b.Descripcion as Categoria,c.Descripcion as SubCategoria FROM productos a, categoria b, subcategoria c WHERE a.IdCategoria=b.idCategoria AND a.IdSubCategoria=c.IdSubCategoria limit 12";
               $resultados = $pdo->query($sql);
               while ($registro = $resultados->fetch(PDO::FETCH_ASSOC)) {
                 echo "<li class='producto'><ul class='producto-componentes'><li class='imagen-producto'><img src=" . $registro['Imagen'] . "alt='Sanitarios'/></li><li class='titulo-producto'>" . $registro["NombreCorto"] . "</li></li><li class='Material-producto'><p class='titulo-divisor-producto'>Material</p><p class='material-producto'>" . $registro['Descripcion'] . "</p></li><li class='precio-producto'>$" . $registro['precioUnitario'] . "</li><a href='detalle.php?Id=" . $registro['IdProducto'] . "'class='cta-ghost main'>Ver detalles</a> </ul></li>";
               }
           ?> 
  <li class="producto"></li>
</p>

If you use this PHP fork of Jade: https://github.com/kylekatarnls/jade-php , you can do: 如果您使用以下Jade的PHP分支: https : //github.com/kylekatarnls/jade-php ,则可以执行以下操作:

p.base Somos una empresa de distribución de Temped ea nos mi, sequam autecer spernat essimos dolorepud
  ul.grilla-productos-home
    - $sql        = "SELECT a.IdProducto,a.NombreCorto,a.Descripcion as Descripcion,a.precioUnitario,a.Imagen,b.Descripcion as Categoria,c.Descripcion as SubCategoria FROM productos a, categoria b, subcategoria c WHERE a.IdCategoria=b.idCategoria AND a.IdSubCategoria=c.IdSubCategoria limit 12"
    - $resultados = $pdo->query($sql)->fetchAll(PDO::FETCH_OBJ)
    for registro in resultados
      li.producto: ul.producto-componentes
        li.imagen-producto
          img(src=registro.Imagen alt='Sanitarios')
      li.titulo-producto
        =registro.NombreCorto
      li.Material-producto:p.titulo-divisor-producto ...

But I recommand to do SQL requests in the controller, not in the view. 但是我建议在控制器中而不是在视图中执行SQL请求。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM