这可能是一个非常简单的答案......
我有一段代码,我需要提取一些信息。
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('XXXX')->toHTML();?>
为此,我需要XXXX部分来提取以下查询的结果:
<?php echo $_product->getAttributeText('warranty') ?>
因此,上述查询的输出将成为进入XXXX所需的信息。
这个标记在下面是完全错误的,但应该证明我想要实现的想法:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('<?php echo $_product->getAttributeText('warranty') ?>')->toHTML();?>
答案 0 :(得分:3)
你在代码中只有一个冗余的PHP开放&lt;?php。您已经在PHP上下文中,因此您可以直接进行该调用。
<?php echo
$this->getLayout()->createBlock('cms/block')->setBlockId($_product->getAttributeText('warranty'))->toHTML();?>
然而,这非常复杂且难以调试。我会将它分成几行并使用变量...记住你可以在那个上下文中完成它,你不一定只在一行中做所有事情:)
答案 1 :(得分:1)
可能很简单:
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($_product->getAttributeText('warranty'))->toHTML();?>
如果没有那么我非常想知道setBlockId函数需要什么样的var(array,int,string,double等)以及$ _product-&gt; getAttributeText返回的内容。
答案 2 :(得分:1)
echo $this->getLayout()->createBlock('cms/block')->setBlockId($_product->getAttributeText('warranty'))->toHTML();?>
答案 3 :(得分:1)
<?php
echo $this->getLayout()
->createBlock('cms/block')
->setBlockId($_product->getAttributeText('warranty'))
->toHTML();
?>