模型中的Codeigniter和Set Session

Bah*_*eza 5 session model codeigniter

我想取消设置并在模型函数中设置会话依赖于传递的id.
我有每个记录的语言字段,应考虑到这一点改变会话.
在示例单词中我有这样的链接:http:
//www.mysite.com/report/2020现在这篇文章可能由英语保存,但当前会话是french.so我应该更改会话.这是我的代码,但它不起作用.

  //function for checking language by id
  public function lang($id)
     {
         $data = $this->db
                        ->select('language')
                        ->from('content')
                        ->where('id',$id)
                        ->get();

        if ($data->num_rows > 0) {

            return $data;
  }else{
            return false;
        }
    }
  //function for reading data from db depend on id and language
  public function report($id)
    {

    $cat=2;
    $code=$id;

    $langu= $this->lang($id)->row()->language;
    if($langu==3){
    $this->session->unset_userdata('lang');
    $this->session->set_userdata('lang','dr');
    }
    if($langu==2){
    $this->session->unset_userdata('lang');
    $this->session->set_userdata('lang','pa');
    }
    if($langu==1){
    $this->session->unset_userdata('lang');
    $this->session->set_userdata('lang','en');
    }
    $language= $this->session->userdata('lang');
    $lang=$language;


    $data = $this->db
                        ->select('*')
                        ->from('content')
                        ->where('category',$cat)
                        ->where('language',$lang)
                        ->where('id',$code)
                        ->get();

        if ($data->num_rows > 0) {

            return $data;
        }else{
            return false;
        }

    }
Run Code Online (Sandbox Code Playgroud)

Ada*_*kal 9

会话的最佳方式是:

你必须在模型中检查查询,并在控制器中调用模型,如果它在控制器中的真实设置会话数据....

模型中设置Session对于MVC架构来说不是一个好主意.