2013-10-10 8 views
13

słychać jest mój kod

public function viewdeletedrecords() 
{ 

    if($this->session->userdata('applicant_firstname') == '') 
    { 
     redirect('papplicant/login') ; 
    } 
    $profile = $this->m_applicant->showdeletedrecods('','');               
    $total_rows = count($profile) ; 
    $config['base_url'] = base_url().'index.php/papplicant/viewdeletedrecords/' ; 
    $config['per_page'] = '10' ; 
    $config['full_tag_open'] = '<div>' ; 

    $config['full_tag_close'] = '</div>' ; 

    $config['first_link'] = 'First' ; 

    $config['last_link'] = 'Last' ; 

    $config['use_page_numbers'] = TRUE ; 

    $config['prev_link'] = '&lt;' ; 

    $config['uri_segment'] = 3 ; 

    $config['num_links'] = 10 ;   

    $config['cur_tag_open'] = '<b>' ; 

    $config['cur_tag_close'] = '</b>' ; 

    $config['total_rows'] = $total_rows ;  

    $invoicepaginate = $this->m_applicant->showdeletedrecods($config['per_page'], $this->uri->segment(3)) ;  

    $this->pagination->initialize($config);  

    $data4 = array(        

    'data' => $invoicepaginate                      

    ) ; 

    $this->load->view('applicant', $data4); 

} 

co jest stosowanie $this->uri->segment(3) w CodeIgniter

Whan wejdę $this->uri->segment(3); występ działa zgodnie z oczekiwaniami, ale kiedy wchodzi $this->uri->segment(4); to przestaje działać

Odpowiedz

39

Pozwala to na pobieranie informacji ze swoimi strunami URI

$this->uri->segment(n); // n=1 for controller, n=2 for method, etc 

Rozważmy następujący przykład:

http://example.com/index.php/controller/action/1stsegment/2ndsegment

powróci

$this->uri->segment(1); // controller 
$this->uri->segment(2); // action 
$this->uri->segment(3); // 1stsegment 
$this->uri->segment(4); // 2ndsegment 
3

W kodzie $this->uri->segment(3) odnosi się do paginacji offset których używasz w zapytaniu. Według twojego numeru $config['base_url'] = base_url().'index.php/papplicant/viewdeletedrecords/' ;, $this->uri->segment(3), tj. Segment 3 odnosi się do przesunięcia. Pierwszy segment to controller, drugi to method, po czym nadchodzi parameters wysłany do kontrolerów jako segments.

14

CodeIgniter User Guide mówi:

$ this-> uri-> segment (n)

pozwala na odzyskanie konkretnego segmentu. Gdzie n jest numerem segmentu , który chcesz odzyskać. Segmenty są ponumerowane od lewej do prawej. Na przykład, jeśli Twój pełny adres URL jest taki: http://example.com/index.php/news/local/metro/crime_is_up

Numery segmentu byłoby to:

1. news 
2. local 
3. metro 
4. crime_is_up 

Więc segment odnosi się do segmentu struktury URL. W powyższym przykładzie $this->uri->segment(3) będzie 'metro', natomiast $this->uri->segment(4) będzie 'crime_is_up'.

+0

Nicea wyjaśnienie, dziękuję. :) – Pran

0

Powiedzmy masz url jak ten http://www.example.com/controller/action/arg1/arg2

Jeśli chcesz wiedzieć, jakie są argumenty, które są przekazywane w tym url

$param_offset=0; 
$params = array_slice($this->uri->rsegment_array(), $param_offset); 
var_dump($params); 

wyjściowe będą:

array (size=2) 
    0 => string 'arg1' 
    1 => string 'arg2' 
4

Domyślnie funkcja zwraca FALSE (boolean), jeśli segment nie istnieje. Istnieje opcjonalny drugi parametr, który pozwala ustawić własną domyślną wartość, jeśli brakuje segmentu.Na przykład funkcja ta zwróci wartość zero w przypadku niepowodzenia: $ product_id = $ this-> uri-> segment (3, 0);

To pomaga uniknąć konieczności pisania kodu tak:

[if ($this->uri->segment(3) === FALSE) 
{ 
    $product_id = 0; 
} 
else 
{ 
    $product_id = $this->uri->segment(3); 
}]