2

コントローラからモデルに複数のパラメータを渡そうとしています。$scholIdフォームを送信した後、パスしようとしているものがモデルに伝わらないようです。ただし、$userIdデータベースへのアクセスは問題ありません。$this->uri->segment(4)正しく通過しない何か問題がありますか?

function apply() 
{
    $this->load->helper('form');
    $this->load->library('form_validation');

    $scholId = $this->uri->segment(4);

    $userId = '2'; //User query -> this will be taken from session

    $this->data['scholarship'] = $this->scholarship_model->getScholarship($scholId);
    $this->data['title'] = "Apply";

    $this->form_validation->set_rules('essay', 'Essay', 'required');

    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('templates/header', $this->data);
        $this->load->view('student/page_head', $this->data);
        $this->load->view('student/form', $this->data);
        $this->load->view('templates/footer', $this->data);
    }else{
        // Validation passes
        $this->users_model->applySchol($userId,$scholId);
        redirect('/scholarships');
    }
}
4

1 に答える 1

1

渡す前に、セグメントが存在するかどうかを確認する必要があります。

if ($this->uri->segment(4) === FALSE)
{
    $schoId = 0; //or anything else so that you know that does not exists
}
else
{
    $schoID= $this->uri->segment(4);
}

または単に:

$product_id = $this->uri->segment(4, 0);
//which will return 0 if it doesn't exists.
于 2013-01-10T21:18:57.037 に答える