【问题标题】:Pass variable into url with CakePHP使用 CakePHP 将变量传递到 url
【发布时间】:2012-11-06 00:46:23
【问题描述】:

在我的网站上,我使用 Cake PHP,并且我有一个这样的文章网址:

/article/testx?name=Stefy

我想做一种“mod rewrite”,并有一个这样的 url:

/name/Stefy

我试图从 routes.php 做,但我不知道该怎么做。 我在 CakePHP 网站上查看了关于数组中的“传递”函数以及 StackOverflow 上的其他主题,但我找不到解决方案,可能是因为我是 CakePHP 的初学者。 你能帮帮我吗?

我想我应该是这样的: Router::connect('/name/:id', array('controller' => 'articoli', 'action' => 'display','testx?name=$id') );

但它当然不起作用。我想我必须在 routes.php 中使用“pass”

你能帮帮我吗?

谢谢!

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    是的,你确实必须使用“pass”:

    Router::connect('/name/:id', 
        array('controller' => 'articoli', 'action' => 'display'), 
        array('pass' => array('id')));
    

    你可以生成这样的链接:

    $this->Html->link('Title', array('action' => 'display', 'id' => 1));
    

    【讨论】:

    • 您好,非常感谢。如何对变量进行“回声”?例如,网址将类似于 /name/Stefy 如何在页面中仅显示“Stefy”?谢谢!
    • 我不明白你的意思! "stefy" 不是 id 而是蛞蝓?
    • 我试图更好地解释它...我的网址 /article/testx?name=Stefy 通常会显示一个页面,其中包含如下代码:您选择的名称是: 所以它显示:你选择的名字是:Stefy 我想要一种“Mod Rewrite”,当我去一个像这样的网址时:/name/ Stefy 它将显示:您选择的名称是:Stefy 如果我转到如下网址:/name/Mark 将显示:您选择的名称是:Mark 我是不确定它是一个蛞蝓,也许是的。谢谢!
    • 是的,你应该使用 SluggedBehavior 等来为你的名字创建 slugs,然后在你的路线中使用它们。仅此而已。
    【解决方案2】:

    Router::connect('/:slug',array('controller' => 'salons', 'action' => 'details'), array('pass' => array('slug'))) ;

    【讨论】:

      猜你喜欢
      • 2014-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多