html — многострочный скрипт на PHP

Я создаю сайт с Jade и PHP, и Я не могу включить многострочные сценарии PHP в мой файл Jade потому что это выдает ошибку отступа.

Это будет пример моего кода:

        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

Когда он пытается скомпилировать код выше, он бросает это ошибка:

unexpected token "indent"

Указано во второй строке моего скрипта («$ sql …»)

Из-за этой проблемы я вынужден минимизировать сценарии в одну строку, что делает их действительно трудно редактировать после этого.

Есть ли способ включить многострочные встроенные сценарии в шаблон Jade? Есть ли лучшая практика, чтобы заставить скрипты PHP работать в Jade?

Спасибо!

1

Решение

Просто добавьте ваш 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

который будет производить

<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>
1

Другие решения

Если вы используете этот PHP форк Jade: 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 ...

Но я рекомендую делать запросы SQL в контроллере, а не в представлении.

0

По вопросам рекламы [email protected]