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.
InformationsquelleAutor almix | 2012-11-28
Schreibe einen Kommentar