0

SOがURIを処理する方法が大好きです。CIで同じ動作を模倣したいと思います。呼び出されたコントローラーがUsersあり、indexメソッドはユーザーIDである1つの引数を取る必要があります。そのユーザーIDに関連付けられているユーザー名をDBで検索します。user:1それが持っていると考えてくださいusername:Santa Claus、どうすればユーザー名をURIに追加して、次のようになりますか?http://foo.com/users/1/santa-claus

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

class Users extends CI_Controller {

function index($uID = 0) {
    if ($uID > 0) {
        $this->load->model('users_model');
        $uname = $this->users_model->_getUsername($uID);

        #append somehow..       

    } else {
        echo('load all users');
    }
}

}

明確にするために、私はこれを達成しようとしています:

https://stackoverflow.com/a/11041075/704015

4

2 に答える 2

1

application / config / routers.php

$route['users/(:num)/(:any)'] = 'users/index/$1';

コントローラ

    function index($uID = 0) {
         .....
         $uname = strtolower(str_replace(" ", "-", $uname));

         header("Location: ".base_url()."user/".$uID."/".$uname);

ループを回避するためにユーザー名がすでに存在する場合は、他の何かを行う条件を含めてください。

于 2012-12-11T23:48:13.363 に答える
0

これはconfig/routes.phpにあります

 $route['users/(:num)/(:any)'] = 'users/$1/$2';

そしてこれはあなたのコントローラーで

public function users($id,$username = FALSE)
{
于 2012-12-08T15:33:12.487 に答える