Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 在codeigniter路由文件中动态重新路由_Php_Codeigniter_Routing - Fatal编程技术网

Php 在codeigniter路由文件中动态重新路由

Php 在codeigniter路由文件中动态重新路由,php,codeigniter,routing,Php,Codeigniter,Routing,我有以下URL,可以使用: www.example.com/police/alarm/5 然而,在我的数据库中,我有一个带有一些名称值的表,其中一个值是“car” 我想动态路由我的url,如果其中一个名称值是我的url中的第一个段,请忽略它并在没有它的情况下重新路由。(我将根据常量文件中的该值设置一些变量) 到目前为止,我在routes.php文件中的代码是: require_once(BASEPATH.'database/DB.php'); $db =& DB(); $query =

我有以下URL,可以使用:

www.example.com/police/alarm/5

然而,在我的数据库中,我有一个带有一些名称值的表,其中一个值是“car”

我想动态路由我的url,如果其中一个名称值是我的url中的第一个段,请忽略它并在没有它的情况下重新路由。(我将根据常量文件中的该值设置一些变量)

到目前为止,我在routes.php文件中的代码是:

require_once(BASEPATH.'database/DB.php');
$db =& DB();
$query = $db->where('org_type', 2)
    ->get('organization');
$result = $query->result();
foreach( $result as $row )
{
    $route[ $row->name.'/:any' ]         = '$1';
}
这给了我以下结果(执行var_转储):

当我浏览到包含“car”或“truck”作为url第一部分的url时,如果没有它,它不会重新路由到url

编辑:

$route[ $row->name.'/:any' ]
or
$route[ $row->name.'/(:any)' ]

结果仍然与测试相同

,如果您硬编码它们,它是否会像预期的那样工作?是的,当硬编码时,它工作得非常完美。
$route[$row->name.'/:any']='1'
意味着您拥有几乎无限(DB中的行数)的控制器文件,因为第一个参数
$1
被CodeIgniter识别为控制器。您应该有类似于
controller\u name/$1
的内容。向我们显示您的控制器代码。控制器名称始终是URL的第二部分,我无法将其设置为固定名称,因为我有多个控制器。。我唯一的要求是跳过URL的第一部分(例如“car”),然后只执行控制器名称(这是第二部分)
$route[ $row->name.'/:any' ]
or
$route[ $row->name.'/(:any)' ]