【问题标题】:How to do dynamically a Altorouter如何动态地做一个 Altorouter
【发布时间】:2019-04-02 10:59:48
【问题描述】:

我在 PHP 中使用了 Altorouter,并尝试动态化我的路由器。 我有一个特定于文件夹、子文件夹、子子文件夹的体系结构。

我已经尝试过这样做

//dynamic routage for root main pages
$router->map( 'GET', '/[:pageName]', 'HomeControler::pageRedirect');

//dynamic routage for subfolder pages
$router->map( 'GET', '/[:folder]/[:pageName]', ' 
HomeControler::subPageRedirect');

这行得通,但我只是匹配文件夹/页面。 我不会对所有子文件夹执行此方法。 如何自动检测文件夹、子文件夹?

在我的控制器中,

我这样控制文件夹?

// Dynamic mapping to pages
public static function pageRedirect($pageName) {
    self::redirectTo(dirname(__FILE__) . "/../../front/$pageName.php");
}

如果他在此页面中找不到,我会做条件吗?

【问题讨论】:

  • 您是否打算拥有包含文件的动态文件夹?
  • “带文件的动态文件夹”是什么意思?
  • 您的代码是否会创建一些动态文件夹,其中包含您需要在运行时与 url 映射的文件?
  • 是的,当我创建文件夹、子文件夹或文件时,我会映射它们并编写正确的 URL
  • 如果你有固定数量的文件夹和子文件夹,那么你就不需要添加额外的代码来将这些 url 映射到文件夹和文件,你应该静态定义这些。

标签: php altorouter


【解决方案1】:

你可以这样做

 $router->map('GET', '/[*:target]', 'yourController')

这会将任何请求映射到您的控制器。如何在控制器中解释 target 取决于您(查看文件夹等)。

【讨论】:

    猜你喜欢
    • 2013-09-23
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    相关资源
    最近更新 更多