2012-01-30 152 views
0

我有点在死胡同尝试我的路线CakePHP。我几乎阅读了www中的每篇文章,其中一些文章接近我需要的内容,但是与其他文章并没有像预期的那样工作。也尝试了一些路由器LIB-S,但同样CakePHP路由器与slu and和语言

以下是我需要:

在url两种文字参数和页面的蛞蝓。所以:

针对前端

目录 '/' 应该导致默认语言,controller =>pagesslug =>home

/:郎 - 同如上所述但使用所选语言

/:slug - controller =>pagesaction =>index和传递:slug参数,采用默认语言

/:朗/:蛞蝓 - 与上述相同的与集郎参数

/:控制器/:蛞蝓 -

/:朗/:控制器/:蛞蝓 - 与上述相同的与集郎参数

  • 我不需要在这些链接任何action -s

用于管理面板

/管理 - '控制器'=> '设置', '动作'=> '索引'

/管理/:控制器/:动作/ .. ..这一个是默认

  • 没有必要在管理URL语言参数,但行动存在,除了指数动作

另外我应该如何创建视图内的链接,所以路由器作为应该工作?

回答

1
Router::connect("/admin", array('action' => 'index', 'controller' => 'settings', 'prefix' => 'admin', 'admin' => true)); 
    Router::connect("/admin/:controller", array('action' => 'index', 'prefix' => 'admin', 'admin' => true)); 
    Router::connect("/admin/:controller/:action/*", array('prefix' => 'admin', 'admin' => true)); 

    Router::connect("/:language/*", array('action' => 'home', 'controller' => 'pages')); 
    Router::connect("/:language/:controller", array('action' => 'index')); 
    Router::connect("/:language/:controller/*"); 

您可以复制过去的第二套路线,但改变:语言来一决高下,你应该把它放在一个if和验证的语言给出的,如果它不验证,然后加载蛞蝓路线。

+0

谢谢,很少编辑完美。但如何创建更改语言链接 这是行不通的: '$ this-> Html-> link(__('Lala',true),array_merge($ this-> passedArgs,array('language '=>'eng')));' – user1018809 2012-01-30 17:02:12

+0

它输出了什么?它应该工作。我不确定$ this-> passedArgs会为您提供所需的数据,将该数组打印出来并查看是否传递了控制器和操作。 – 2012-01-31 18:08:11

+0

'$ this-> passedArgs'只传入了slu,,我还能用什么? – user1018809 2012-02-01 10:05:26