Codeigniter dies nicht verwenden können,->uri->segment(3) als Wert in die Funktion
Warum dieser code ist ok
$this->sch_teacher_id = $this->ion_auth->user_by_username("vika")->row()->id;
Aber das funktioniert nicht?
$this->sch_teacher_id = $this->ion_auth->user_by_username($this->uri->segment(3))->row()->id;
Meine url domain:8888/admin_schedule/Lehrer/vika
route.php enthält
$route['admin_schedule/teacher/(:any)'] = "admin_schedule/index/$1";
Ich benutze code-Zeilen in Funktion __construct(), und das Ergebnis des it-Einsatzes in einem anderen controller funktionieren, weil 3 Funktionen verwenden Sie dieses Ergebnis. Wenn ich bewegen Sie diesen code in einer dieser Funktionen und nutzen $this->uri->segment(3) dann bekomme ich nicht 'vika' s Lektionen, aber meine eigenen Lektionen, so
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;
}
funktioniert gut. Aber $this->uri->segment(3) wenn die Verwendung als parameter in user_by_username Funktion, funktioniert nicht!
Seite generiert folgenden Weise:
controller admin_schedule haben die Funktion index, welche render-Ansicht index.php.
Und in dieser Ansicht habe ich javascript nutzen, dass eine andere Funktion aufrufen von admin_schedule controller = get_schedule_db_recurring_events_on_daysweek so:
...
{
url: '/admin_schedule/get_schedule_db_recurring_events_on_daysweek/',//"<?echo $data_path?>",
backgroundColor: 'red',
}
und im controller
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);
}
}
Bitte helfen Sie dieses problem verstehen.
- Haben Sie versucht, ordnen Sie diese in eine variable und echo, um zu sehen, was Los ist?
- ja, natürlich: $Benutzername1 = "'".$dieser->uri->segment(3)."'"; print_r($Benutzername1); Dieser Druck 'vika', wie es sollte.
- Wenn ja, Ihre Letzte Frage ist schon beantwortet. Das hat uns mit das größte problem. Haben Sie versucht, übergeben Sie diesen Wert mit einer Variablen, statt Sie direkt zu der Methode (scheint seltsam, aber es verursacht einige Probleme mit Referenzen in einigen Fällen). Nur ein Versuch.
- Übergabe-Wert 'vika' in variable $Benutzername1 = "vika"; gibt gute Folge, ja. Problem passiert, wenn ich $this->uri->segment(3). Ich habe versucht rsegment stattdessen segment und es hilft nicht.
- Wenn du dein problem gelöst hat, die Lösung posten als Antwort, so kann es anderen helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich kann mich nicht erinnern, den Grund, es ist nur CI Eigenart, Sie müssen lernen zu akzeptieren, können Sie nicht verwenden $this->uri->segment(3) etc als argument direkt an, Sie werden zuweisen müssen, und es dann passieren, dass, wie @almix schlug vor, für seine geistige Gesundheit testen.
Zumindest ich habe auch immer Schwierigkeiten mit der Verwendung es direkt als argument - tho ich werde glücklich sein, für jemand, mich zu korrigieren!
Ich mein problem gelöst!
Denken, dass etwas schief geht weil der ajax-Aufrufe. Also wenn ich den code im controller
Als Nächstes habe ich den richtigen Wert ('vika'), oder um genauer zu sein, vika id ('911') in view-Datei aber nicht in anderer Funktion meines Controllers. Aber kann ich diesen Wert übergeben jetzt (sch_teacher_id) aus der Sicht dieser controller mit jQuery $.ajax-option Daten:
Und weiter (auf der anderen Seite des Berges) fangen diese GET-parameter und kick es zu der Modell-Funktion:
Und es ist alle breakdance.