Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP中的路由器定义动态操作/段塞_Php_Routes_Phalcon_Phalcon Routing - Fatal编程技术网

使用PHP中的路由器定义动态操作/段塞

使用PHP中的路由器定义动态操作/段塞,php,routes,phalcon,phalcon-routing,Php,Routes,Phalcon,Phalcon Routing,我有一个用PHPHPHALCON制作的网站,它有几个控制器 现在我需要这个网站接收URL中的单词(example.com/WORD)并检查它们是否存在于数据库中,但我必须继续支持example.com/aboutme等其他控制器 在尝试了几个小时不同的方法和在线搜索之后,我找不到一个方法来完成这项任务。更接近的目的是创建一个路由,将不存在的操作重定向到新控制器,但我无法使此解决方案工作 你能想出一个可行的解决方案并分享代码/想法吗?我没有添加任何代码,因为我无法执行任何有用的操作。这应该根本不是

我有一个用PHPHPHALCON制作的网站,它有几个控制器

现在我需要这个网站接收URL中的单词(example.com/WORD)并检查它们是否存在于数据库中,但我必须继续支持example.com/aboutme等其他控制器

在尝试了几个小时不同的方法和在线搜索之后,我找不到一个方法来完成这项任务。更接近的目的是创建一个路由,将不存在的操作重定向到新控制器,但我无法使此解决方案工作


你能想出一个可行的解决方案并分享代码/想法吗?我没有添加任何代码,因为我无法执行任何有用的操作。

这应该根本不是问题。以下是示例路线:

// Default - This serves as multipurpose route definition
// I can use it to create non pretty urls if I don't want to define them. 
// Example: profiles/login, profiles/register - Don't need those pretty :)
$router->add('/:controller/:action/:params', ['controller' => 1, 'action' => 2, 'params' => 3]);
$router->add('/:controller/:action', ['controller' => 1, 'action' => 2]);
$router->add('/:controller', ['controller' => 1]);

// Product page - www.example.com/product-slug-here
$router->add('/{slug}', 'Products::view')->setName('product');

// Blog
$router->add('/blog/{slug}', 'Blog::view')->setName('blog');
$router->add('/blog', 'Blog::index')->setName('blog-short');

// Contacts - Pretty urls in native website language
$router->add('/kontakti', 'Blabla::contacts')->setName('contats');

毕竟,规则不起作用,所以我想出了一个变通办法。我正在捕获控制器不存在时引发的异常,并在那里运行我的代码。到目前为止,唯一的问题是参与意大利面条守则的苦味:-(

try{
    $application = new Application($di);
    echo $application->handle()->getContent();
}
catch(\Phalcon\Mvc\Dispatcher\Exception $e)
{
    $word = substr($e->getMessage(), 0, strpos($e->getMessage(), "Controller"));
    // RUN ESPECIFIC CODE HERE
}