このコードがOKな理由
$this->sch_teacher_id = $this->ion_auth->user_by_username("vika")->row()->id;
しかし、これはうまくいきませんか?
$this->sch_teacher_id = $this->ion_auth->user_by_username($this->uri->segment(3))->row()->id;
私の URL は domain:8888/admin_schedule/teacher/vika です
route.php が含まれています
$route['admin_schedule/teacher/(:any)'] = "admin_schedule/index/$1";
関数 __construct()でコード行を使用し、その結果を別のコントローラー関数で使用します。これは、3 つの関数がこの結果を使用するためです。このコードをこの関数の 1 つに移動して$this->uri->segment(3)を使用すると、「vika のレッスン」ではなく、「自分のレッスン」が得られるので、
public function user_by_username($username = FALSE)
{
$this->trigger_events('user');
//if no id was passed use the current users id
$username || $username = $this->session->userdata('username');
$this->limit(1);
$this->where($this->tables['users'].'.username', $username);
$this->users();
return $this;
}
うまくいきます。しかし、 $this->uri->segment(3) を user_by_username 関数のパラメーターとして使用すると、機能しません!
次の方法で生成されたページ: コントローラー admin_schedule には、ビュー index.php をレンダリングする関数 index があります。そして、そのビューでは、admin_schedule controller = get_schedule_db_recurring_events_on_daysweek から別の関数を呼び出す javascript を使用します。
...
{
url: '/admin_schedule/get_schedule_db_recurring_events_on_daysweek/',//"<?echo $data_path?>",
backgroundColor: 'red',
}
そしてコントローラーで
function get_schedule_db_recurring_events_on_daysweek()
{
$start = date('Y-m-d H:i', $this->input->get('start'));
$end = date('Y-m-d H:i', $this->input->get('end'));
$sch_teacher_id = $this->uri->segment(3); // <--- this doesn't work, but $sch_teacher_id = 111 works perfectly
$result=$this->Schedule_model->get_schedule_recurring_events_on_daysweek($start, $end, $sch_teacher_id);
$count=count($result);
if($count>0){
echo json_encode($result);
}
}
この問題を理解するのを手伝ってください。