Mam poniżej kod codeigniter w mojej aplikacji, który działa w 100%, ale nie wiem dlaczego.
część mojej składni kontrolera
if($this->input->post()){
$data = array(
"customer" =>$this->input->post("customer"),
"period" =>$this->input->post("period"),
"buom" =>$this->input->post("buom"),
// "creditlimit" =>$this->input->post("buom"),
"creditlimit" => $this->sales_model->get_creditlimit($this->input->post("customer"))
);
$this->session->set_userdata($data);
}
$this->load->view("sales/new_blank_order_lines",$this->session->all_userdata());
Nie rozumiem powiązania między set_userdata($data);
i $this->session->all_userdata()
co jest set_userdata
do all_userdata
Z góry dziękuję.
Odpowiedzi:
3 dla odpowiedzi № 1jak mówi dokumentacja:
dla wszystkich_użytkowników:
$this->session->all_userdata()
oznacza, że wszystkie dostępne dane są umieszczane w tablicy w taki sposób.
Array
(
[session_id] => 4a5a5dca22728fb0a84364eeb405b601
[ip_address] => 127.0.0.1
[user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
[last_activity] => 1303142623
)
dla set_userdata:
Dodawanie danych sesji niestandardowej
Użytecznym aspektem tablicy sesji jest to, że można dodawać własne dane i będzie przechowywany w pliku cookie użytkownika. Dlaczego chcesz zrobić to? Oto jeden przykład:
Powiedzmy, że konkretny użytkownik loguje się do Twojej witryny. Po uwierzytelnieniu możesz dodać ich nazwę użytkownika i adres e-mail do pliku cookie sesji, udostępnianie danych na całym świecie bez konieczności uruchamiania zapytanie o bazę danych, gdy jej potrzebujesz.
Dodanie danych do tablicy sesji wymaga przekazania tablicy zawierające nowe dane do tej funkcji:
$this->session->set_userdata($array);
Gdzie $ array jest tablicą asocjacyjną zawierającą nowe dane. Oto przykład:
$newdata = array(
"username" => "johndoe",
"email" => "johndoe@some-site.com",
"logged_in" => TRUE
);
$this->session->set_userdata($newdata);
Czytaj więcej TUTAJ
1 dla odpowiedzi nr 2
* all_userdata * zwraca tablicę wszystkich danych użytkownika, zwróci coś takiego:
Array
(
[session_id] => 4a5a5dca22728fb0a84364eeb405b601
[ip_address] => 127.0.0.1
[user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
[last_activity] => 1303142623
)
* set_userdata * ustawia niestandardowe dane sesji.
Dzieje się tak, ponieważ CodeIgniter jest w stanie zidentyfikować twoją sesję poprzez * all_userdata *
Ma nadzieję, że to pomoże, nie wahaj się zadawać dalszych pytań =)
1 dla odpowiedzi nr 3
Dodanie odniesienia do mojego komentarza na górze
$data = array();
if($this->input->post()){
$data = array(
"customer" =>$this->input->post("customer"),
"period" =>$this->input->post("period"),
"buom" =>$this->input->post("buom"),
// "creditlimit" =>$this->input->post("buom"),
"creditlimit" => $this->sales_model->get_creditlimit($this->input->post("customer"))
);
}
if(count($data)>0)
{
$this->load->view("sales/new_blank_order_lines",$data);
}
else
{
$this->load->view("sales/new_blank_order_lines");
}