【发布时间】:2012-06-21 16:19:07
【问题描述】:
我对 CI 有疑问。我有一个模型:
public function Game($id) {
$id = (int)$id;
$q = $this -> db -> get_where('games', array('id' => $id));
return $q -> row_array();
}
它的控制器:
public function index($gameID) {
$data['game'] = $this->games_model->Game($gameID);
$this -> load -> view('games/game', $data);
}
还有一个问题 ;) 我的路由设置如下:
$route['games/(:num)'] = 'games/game/$1';
$route['games'] = 'games/game/game';
但它根本不起作用。我的控制器目录是games/game.php(内部有函数Game)。我的问题是 - 我怎样才能通过$id 呢?我对 CI 很陌生,但在文档中找不到解决方案。
【问题讨论】:
-
您遇到了什么错误?路由看起来不错,但我对你的控制器结构有点困惑。
-
我收到 404。你为什么感到困惑?
-
游戏太多... :) 说真的,只有在路由 URL(例如'games/21')或完整 URL('games/game/21 ' 或 'games/game/index.php/21')?
-
这是做什么的:
$route['games/(:num)'] = 'games/game/index/$1';? -
我喜欢把我的东西分开,所以我尽量把所有东西放在不同的文件里。
games/game/index/$1是games(dir)/game(file)/index(class)/$1(parameter)。但是,我做到了。这是我的错。好的路线是(修改为与我的 slug 一起使用)$route['games/(:any)-(:num)'] = 'games/game/game/$2';
标签: php codeigniter routing controller