1

我正在使用 cakephp 2.2

我将路由器配置为具有漂亮的 url

html链接没有改变停留在第一个结果上

下面的代码可以工作并且可以做我想要的,但我正在尝试使用 cakes 生成链接的方式

<td><a href="/<?php echo $examples['somemodel']['slug'];?>"><?php echo $examples['somemodel'][slug'];?> </a></td>

当我这样做时,网址名称不同但超链接不会改变

<?php echo 
$this->Html->link($examples['model']['somename'], '/controllername/slug/' + $examples['model']['slug']);
?>

我的结果是

<a href =”/example1”&gt;example1 </a> 
<a href =”/example1 ”&gt;example2 </a> 
<a href =”/example1 ”&gt;example3 </a> 
<a href =”/example1”&gt;example4 </a> 

而不是我想要它做的

<a href =”/example1”&gt;example1 </a> 
<a href =”/example2”&gt;example2 </a> 
<a href =”/example3”&gt;example3 </a> 

如您所见,网址名称不同,但超链接没有改变

//router.php 路由器::connect(

"/example/:slug",
array('controller' => 'differentname', 'action' => 'view'),
       array( 

            'name'=>'[-A-Z0-9]+', 

           'pass' => array('slug')



          ) 

        );

Router::connectNamed(
array('/example/' => array('action' => 'view', 'controller' => 'different')),
array('default' => true, 'greedy' => true)
);      



//'view.ctp

  <?php
foreach ($example as $examples): ?>

 <?php echo 
 $this->Html->link($examples['model']['somename'], '/controllername/slug/' +     $examples['model']['slug']);
 ?>

结果示例 1 示例 2 示例 3 示例 4

代替

   <a href =”/example1”&gt;example1 </a> 
 <a href =”/example2”&gt;example2 </a> 
<a href =”/example3”&gt;example3 </a> 

我错过了什么或没有到达这里

4

1 回答 1

1

也许是因为使用 '+' 作为文本追加运算符。您需要使用“。” 反而。

例子:

$this->Html->link($examples['model']['somename'], '/controllername/slug/'.$examples['model']['slug']);

于 2012-09-25T21:02:43.100 回答