簡體   English   中英

如何解決路由器? 我想檢查URI是否像控制器和操作一樣不存在

[英]How to work around with routers? I want to check if the URI is exisiting like it's controller and action

我是Phalcon PHP的新手,目前正在開發CMS。

我正在嘗試創建一個博客模塊,用戶可以在其中發布帶有URL結構的自定義嵌條的博客。

我在路由URI時遇到問題,就像我想先檢查控制器或操作是否存在一樣。 如果不是,它應該重定向到我的動作處理程序,並檢查這是否是博客,如果不是帖子,則應重定向到404頁面。

我的路由器上已經有一個代碼。 我已經有一個代碼將其重定向到我的視圖操作句柄

$router->add(
    '/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)',
    [
        'controller' => 'posts',
        'action' => 'viewPostHandler',
        'posts_category' => 1,
        'posts_slug' => 2
    ]
);

因此,我已經接受了任何代碼,並將其重定向到posts / viewPostHandler並選擇一個伏特。 但是,使用此路由器會影響默認的/:controller /:action路由器。

就像index / loginSubmit不再起作用。

訂單路線是注冊事項。

如果在帶有可匹配具體路由的段的路由之前加載具體路由( $this->router->addGet('/sample-url') )( $this->router->addGet('/[az-]') )它將優先處理慢跑的路線。

如果您顛倒了注冊順序,那么在上面的示例中,您最后加載了/sample-url ,它應該可以工作。

文檔的相關部分(搜索“訂單”):

由於可以使用add()方法根據需要添加許多路由,因此添加路由的順序表明了它們的相關性,因此,最新添加的路由的相關性要高於首次添加的路由。 在內部,將以相反的順序遍歷所有定義的路由,直到Phalcon \\ Mvc \\ Router找到與給定URI匹配的路由並對其進行處理,而忽略其余路由。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM