路由中间的 CodeIgniter 参数

CodeIgniter Parameter in middle of route

我目前正在学习 codeigniter,但我在路由方面遇到了一些问题。我的路线文件如下:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['images/(:num)/upload/'] = 'image/upload/';
$route['images/(:num)'] = 'image/index/';

$route['yoyo/(:num)'] = 'yoyo/view/';

$route['default_controller'] = 'yoyo';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

我的问题是第一条路线;如果不将 (:num) 移动到路线的末尾,我将无法让它工作。基于我在浏览 Whosebug 后看到的其他路线,它给人的印象是这应该有效。有什么想法吗?

所以要明确一点,如果我改为添加以下路线,它会起作用:

$route['images/upload/(:num)/'] = 'image/upload/';
$route['images/(:num)/upload/'] = 'image//upload';

编辑:我在想什么..抱歉。

当然你不能执行我告诉你的代码,因为路由images//upload意味着你将访问控制器images ...和函数</code>。 </p> <p>显然,你不能那样做。这是你应该做的:</p> <pre><code>$route['images/upload/(:num)'] = 'image/upload/'; public class image extends CI_Controller { public function upload($arg0) {} }

然后如果你想传递更多的args,你只需要继续路由路径。

$route['images/upload/(:num)/(:any)'] = 'image/upload//'; 

public function upload($arg0, $arg1) {}