まず第一に、URL を指定しただけでは機能しません。CI の通常の規則に従っていないため、どこを見ればよいかわかりません。私はあなたのコントローラーがサンプルと呼ばれていると仮定しています。そのコントローラーで呼び出している関数をアプリケーションに伝える必要があります。
「http://localhost/SMS_System/home/sample/get_pitch/102」
また、モデルからデータを取得する必要があります。モデルをロードしてから使用しませんでした。モデルをロードした後の行は、そのモデルから関数を呼び出し、URL から取得した ID を渡します。ID が設定されていない場合に注意してください。これにより、誰かが ID セグメントなしでそのページに移動した場合、パラメーターが欠落しているモデルからエラーがスローされず、ビューで処理される何も返されないことが保証されます。
コントローラ:
function get_pitch($id){
//the following line gets the id based on the segment it's in in the URL
$id=$this->uri_segment(3);
if(!isset($id))
{
$id = 0;
}
$this->load->model('users_model');
$data['query'] = $this->users_model->getUserData($id);
$this->load->view('view_pitch', $data);
}
モデルはコントローラーから渡された ID を取得し、それを使用してデータベースからデータを取得します。私は通常、返す配列を空の配列として作成し、それをビューで処理します。これにより、クエリが失敗した場合にエラーが発生しないことが保証されます。その後、データは最後の行でコントローラーに返され、ロード ビュー呼び出しでビューに渡されます。
モデル:
function getUserData($id)
{
$this->db->where('id',$id);
$result = $this->db->get('users') //assuming the table is named users
$data = array(); //create empty array so we aren't returning nothing if the query fails
if ($result->num_rows()==1) //only return data if we get only one result
{
$data = $result->result_array();
}
return $data;
}
次に、ビューはコントローラーを介してモデルから受信したデータを取得し、存在する場合はそれを表示します。データが存在しない場合は、ユーザーが存在しないことを示すエラーを表示します。意見:
if(isset($query['id']))
{
echo $query['id']; //the variable is the array we created inside the $data variable in the controller.
echo $query['name'];
echo $query['user_id'];
} else {
echo 'That user does not exist';
}