我正在研究在我的更多项目中使用f3。我喜欢路由功能和生成动态路由以用于以下约定的能力:

$f3->route('GET /@controller/@action', '@controller->@action');

我需要的一件事是搜索引擎优化友好的网址,所以我可以做如下事情:
/two-words/two-more-words

作为控制器/动作组合。我已经在代码中尝试过这个,并且尽我所能搜索到关于如何实现这个的例子,但是到目前为止,我还没有成功。基本上,url中的破折号不会解析为路由中的类/方法(控制器/操作)组合。
有没有一种方法可以让破折号替换为空字符,或者用其他方法来解析路由?

最佳答案

如果你真的想这样做,你可以用lambda函数来实现:

f3->route('GET /@controller/@action', function($f3,$params){
  $class = str_replace('-','',$params['controller']);
  $method= str_replace('-','',$params['action']);
  $f3->call( $class.'->'.$method );
});

关于php - 无脂PHP SEO友好的URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25488814/

10-11 12:19