Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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 带有应用ID和入口ID的CodeIgniter路由_Php_Model View Controller_Codeigniter_Routing_Codeigniter 2 - Fatal编程技术网

Php 带有应用ID和入口ID的CodeIgniter路由

Php 带有应用ID和入口ID的CodeIgniter路由,php,model-view-controller,codeigniter,routing,codeigniter-2,Php,Model View Controller,Codeigniter,Routing,Codeigniter 2,我是CodeIgniter的新手,将使用它构建一种具有多个应用程序实例的可重用应用程序。例如,应用程序的每个实例都有一个id 12345,在该实例中,条目id为1、2、3、4、5、6、7、8等等 为此,我想我希望能够使用路由设置如下内容: 其中,此URI将转到应用程序ID 12345中ID=1条目的详细信息页面。这将是一组不同于url的条目,例如/12346/Entry/Details/1。这是一个需要设置的路由规则吗?如果是,请有人提供一个如何配置的示例,然后我将如何在函数中使用12345和1

我是CodeIgniter的新手,将使用它构建一种具有多个应用程序实例的可重用应用程序。例如,应用程序的每个实例都有一个id 12345,在该实例中,条目id为1、2、3、4、5、6、7、8等等

为此,我想我希望能够使用路由设置如下内容:


其中,此URI将转到应用程序ID 12345中ID=1条目的详细信息页面。这将是一组不同于url的条目,例如/12346/Entry/Details/1。这是一个需要设置的路由规则吗?如果是,请有人提供一个如何配置的示例,然后我将如何在函数中使用12345和1。提前非常感谢您的帮助。

我的建议是您按如下方式发送URL:

$route['(:any)/{controller_name}/(:any)/(:any)'] = '{controller_name}/$2/$3/$1';
class Entry extends CI_Controller
{
   function Details(var1, var2, ..., varn, app_id){}

   function Someother_Function (var 1, app_id){}
}
因此,函数的最后一个参数始终是应用程序12345/12346的id。这样做意味着您的入口控制器功能将如下所示:

$route['(:any)/{controller_name}/(:any)/(:any)'] = '{controller_name}/$2/$3/$1';
class Entry extends CI_Controller
{
   function Details(var1, var2, ..., varn, app_id){}

   function Someother_Function (var 1, app_id){}
}
您还需要为除了app_id之外没有任何内容的功能添加路由:

$route['(:any)/{controller_name}/(:any)'] = '{controller_name}/$2/$1'; //This may work for everything.
我希望这就是我们要问的

编辑:


如果您只打算使用数字,那么可以使用:num而不是:any

您可以通过将此规则添加到application/config/routes.php文件来实现这样的路由:

当然,假设您的URI与示例类似

在控制器条目中,您将有一个方法详细信息,它包含两个参数,$contesticId和$photoID,其中$contesticId是您分配的唯一实例,而$photoID是url最后一段的另一个假定变量

class Entry extends CI_Controller(
{
    function details {$contestID, $photoID)
    { //do your codeZ here }
}

请参阅以了解更多信息。你可能还想考虑一下“γ-ReMAP重写”函数,在这种情况下,什么是应用程序?这是一个照片投票竞赛,但是我们希望能够多次使用它,所以我们创建一个竞赛,我认为我称之为应用,并且竞赛将有ID。我们将要投票的所有照片都有自己的ID,例如:{contestID}/{class}/{function}/{photoID}