0

URL のユーザー ID を取得して変数に入れるのに問題があります。これが私がこれをやろうとしている私のコントローラーです。ユーザー ガイドのドキュメントを読みましたが、結果が得られません。

ここに私のURL構造があります:

clci.dev/account/profile/220

コントローラ:

public function profile() 
    {

        $this->load->helper('date');
        $this->load->library('session');
        $session_id = $this->session->userdata('id');
        $this->load->model('account_model');
        $user = $this->account_model->user();
        $data['user'] = $user;
        $data['session_id'] = $session_id;
        //TRYING TO MAKE A VARIABLE WITHT THE $_GET VALUE
        $user_get = $this->input->get($user['id']); 
        echo $user_get;
        if($user['id'] == $session_id)
        {
            $data['profile_icon'] = 'edit';
        }
        else
        {
            $data['profile_icon'] = 'profile';
        }
        $data['main_content'] = 'account/profile';
        $this->load->view('includes/templates/profile_template', $data);


    }

私はこれを間違ってやっているのですか、それとも設定ファイルを調整する必要がありますか?

前もって感謝します

4

4 に答える 4

2

次のようにコントローラー関数を設定します

public function profile($id = false) 
{
     // example: clci.dev/account/profile/222
     // $id is now 222
}
于 2013-02-22T18:38:02.587 に答える
2

codeigniter では、something.com/user.php?id=2使用する代わりにsomething.com/user/2、その 2 を取得する方法は次のとおりです。

$this->uri->segment(3)

詳細についてはhttp://ellislab.com/codeigniter/user-guide/libraries/uri.html

編集:

URL に基づいて: clci.dev/account/profile/220 必要になります$this->uri->segment(4)

于 2013-02-22T18:24:22.820 に答える
0

この時点で、$_GET['id'] の値は 220 になるように意図されていると思います。220 を取得するには、このようにする必要があります(ただし、問題の取得値は、図に示すように 220 以外です)。上記のあなたのURL)

clci.dev/account/profile/220 にアクセスしたとします。詳細については、コメントに従ってください。

public function profile() 
{
    $this->load->helper('url'); //Include this line
    $this->load->helper('date');
    $this->load->library('session');
    $session_id = $this->session->userdata('id'); //Ensure that this session is valid
    $this->load->model('account_model');
    $user = $this->account_model->user(); //(suggestion) you want to pass the id here to filter your record
    $data['user'] = $user;
    $data['session_id'] = $session_id;
    //TRYING TO MAKE A VARIABLE WITHT THE $_GET VALUE
    $user_get = $this->uri->segment(3); //Modify this line
    echo $user_get; //This should echo 220
    if($user_get == $session_id) //Modify this line also
    {
        $data['profile_icon'] = 'edit';
    }
    else
    {
        $data['profile_icon'] = 'profile';
    }
    $data['main_content'] = 'account/profile';
    $this->load->view('includes/templates/profile_template', $data);


}

あなたが正しい道を歩み始めるのに役立つことを願っています。

于 2013-02-25T08:45:33.047 に答える
0

次のように直接取得できます。

public function profile($user_id = 0) 
{
     //So as per your url... $user_id is 220
}
于 2013-02-23T05:03:11.273 に答える