【问题标题】:Can i hide controller and view name cake php 2?我可以隐藏控制器并查看名称 cake php 2 吗?
【发布时间】:2015-10-01 13:28:36
【问题描述】:

我正在使用 cake php,由于某种原因,我想从 url 中隐藏控制器和操作名称。当前网址我们喜欢

http://192.168.1.31/home/this_is_test

home 是控制器名称,this_is_test 是动态的 slug。我想要像

这样的网址

http://192.168.1.31/this_is_test

我的 routes.php 是

Router::connect('/', array('controller' => 'home', 'action' => 'index'));
Router::connect('/dashboard', array('controller' => 'dashboard', 'action' => 'index'));
Router::connect('/login', array('controller' => 'users', 'action' => 'login'));
Router::connect('/admin/login', array('controller' => 'users', 'action' => 'login', 'admin' => true));
Router::connect('/contents/*', array('controller' => 'contents', 'action' => 'view'));
Router::connect('/home/*', array('controller' => 'Home', 'action' => 'index'));

我在谷歌搜索后阅读了几个解决方案。在 routes.php 也试过这个。但没有运气

Router::connect(
    '/:query',
   array('controller' => 'Home', 'action' => 'index',1),
    array('query' => '[a-zA-Z]+')
);

如果可能的话,有人知道这个吗??

【问题讨论】:

    标签: php cakephp routing cakephp-2.0


    【解决方案1】:

    你的解决方案

    对于静态文本试试这个:

    Router::connect('/this_is_test', array(
          'controller' => 'home', 
          'action' => 'this_is_test OR any_other action name'
    ));
    

    如果它是动态的

    Router::connect('/:id', 
        array('controller' => 'home', 'action' => 'index'),
        array(
            'pass' => array('id'),
            array('id' => '[A-Za-z]')
        )
    );
    

    References: Cakephp2.x Route

    我希望我知道你真正想要达到的目标。您可以将路线放置在最后一个位置。 Here is the reference

    其他选项是为您的控制器使用别名。因此,您将控制器称为其他名称并为控制器设置一个新名称,然后在您的 Route 中调用它。

    如果这不起作用,那么您需要编写一个定制的组件来帮助您做到这一点。

    【讨论】:

    • this_is_test 是动态的。手段可以是任何术语A-Z
    • 然后使用正则表达式或创建将从数据库中查找 slug 的 slug 路由。阅读本章book.cakephp.org/3.0/en/development/routing.html 它就在那里。
    • 工作,但不如预期。其他控制器停止工作。所有控制器都重定向到 home/index
    猜你喜欢
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    相关资源
    最近更新 更多