首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter-4无法使用defaultnamespace转发url路由

Codeigniter-4无法使用defaultnamespace转发url路由
EN

Stack Overflow用户
提问于 2021-11-22 06:38:30
回答 1查看 63关注 0票数 1

我想要创建的url;

默认登录页面:http://localhost/Ci/tr

我想要到达管理页面的url:http://localhost/Ci/tr/panelhttp://localhost/Ci/panel

Route.php

代码语言:javascript
复制
$routes->setDefaultNamespace('App\Controllers');
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->set404Override();
$routes->setAutoRoute(true);

$routes->group('{locale}', ['namespace' => 'App\Controllers\Frontend'], function($routes)
{
    $routes->get('/', 'Home::index' );
});
$routes->group('panel', ['namespace' => 'App\Controllers\Backend'], function($routes)
{
    $routes->get('/', 'Home::index' );
});

控制器文件目录:app/Controllers/Frontend/Home.php app/Controllers/Backend/Home.php

App.php默认区域设置public $defaultLocale = 'tr';

我用这种方式无法到达主页。当我更改默认命名空间时,我无法访问其他页面。我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2021-11-22 15:59:30

离开你的default namespace empty.的

将控制器与路由匹配时,路由器会将默认名称空间值添加到由路由指定的控制器的前面。默认情况下,此值为空,这会使每个路由指定完全命名空间的控制器:

$routes->setDefaultNamespace('');

  1. 为默认控制器提供完全限定的命名空间。

$routes->setDefaultController('App\Controllers\Frontend\Home');

  1. 调整您的路由以匹配您声明的URL。

代码语言:javascript
复制
$routes->get('Ci/panel', 'App\Controllers\Backend\Home::index');

$routes->group('Ci/{locale}/panel', ['namespace' => 'App\Controllers\Backend'], function($routes)
{
    $routes->get('', 'Home::index' );
});

$routes->group('Ci/{locale}', ['namespace' => 'App\Controllers\Frontend'], function($routes)
{
    $routes->get('', 'Home::index' );
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70061780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档