Cakephp - 在 if 内显示列表元素

我目前正在使用 cakephp 显示一个列表,但我无法通过单击特定的元素组件来重定向,该组件在某些情况下必须消失,这就是我所拥有的:


<li><a href="<?php echo $this->Url->build(["controller" => "pages","action" => "index"]);?>">Top 20</a>

<?php  

$a = true;

  if($a){ 

    $prod_pm= '<li><a href="<?= $this->Url->build(["controller" => "Catalogo","action" => "cat",11229])? 

    >">Promotions</a>'; 

  }else{

    $prod_pm = '';

}?>  

<?= $prod_pm ?> 

<li><a href="<?= $this->Url->build(["controller" => "Catalogo","action" => "cat",11050]) ?>"></a>

似乎在 href 引用之后重定向的 php 不是那样工作的,我也尝试用外部代码声明一个变量并插入代替$this->Url->build(["controller" => "Catalogo","action" => "cat",11229]) 但没有工作。


在此先感谢您的任何提示或帮助。


元芳怎么了
浏览 99回答 2
2回答

翻阅古今

看起来你只是在属性中插入一个字符串href。尝试:$prod_pm&nbsp;=&nbsp;'<li><a&nbsp;href="'.$this->Url->build(["controller"&nbsp;=>&nbsp;"Catalogo","action"&nbsp;=>&nbsp;"cat",11229]).'">Promotions</a>';

白衣染霜花

您正在尝试从字符串常量内部调用 PHP 代码。The<?=只是作为字符串的一部分。你有什么理由需要这个$prod_pm变量吗?似乎你让自己变得比需要的更难:<li>...<?php&nbsp;&nbsp;$a = true;if ($a):?><li><a href="<?= $this->Url->build(['controller' => 'Catalogo', 'action' => 'cat', 11229]) ?>">Promotions</a><?phpendif;?><li>...或者,等价地,<li>...<?php&nbsp;&nbsp;$a = true;if ($a) {&nbsp; &nbsp; echo $this->Html->tag('li',&nbsp; &nbsp; &nbsp; &nbsp; $this->Html->link('Promotions', ['controller' => 'Catalogo', 'action' => 'cat', 11229])&nbsp; &nbsp; );}?><li>...
打开App,查看更多内容
随时随地看视频慕课网APP