如何根据会话变量在CodeIgniter Model中确定表名

时间:2017-08-08 10:13:29

标签: codeigniter model session-variables

我想基于$ _SESSION变量在我的一个CodeIgniter模型中更改表名。变量确定语言,我想根据所选语言查询不同的表。

现在我有了这个:

let path = UIBezierPath()
shape.move(to: CGPoint(x: 0, y: 0))
shape.addLine(to: CGPoint(x: 0, y: 320))
shape.addLine(to: CGPoint(x: 94, y: 320))
shape.addLine(to: CGPoint(x: 64, y: 0))
shape.close()

但我收到此错误消息:

  

解析错误:语法错误,意外'(',期待'或&#39 ;;' / usr / www / users / staginntkx /第9行的application / modules / ecom_bookings / models / tp_modules_model.php

根据$ _SESSION [' lang']的输出,是否有针对此方法或其他方式更改模型表的方法?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方式:

您只需将table的变量声明为private / public,然后在构造函数中初始化其值。以下是在代码中执行此操作的方法:

<?php if (!defined('BASEPATH')) exit ('No direct script access allowed');

class Tp_modules_model extends DataMapper {

private $table;

public function __construct(){
    parent::__construct();

    // setting the variable for table as per session variable
    $this->table = determineTable($this->session->userdata('lang');
}

public function getModules($ids) {
  $this->clear();
  return $this->where_in('id', $ids)->get()->all_to_array();
}

public function determineTable($lang) {
  if ($lang == 'nl'){
    return 'modules_dutch';
  }else{
    return 'modules';
  }
}
}

您应该使用Codeigniter的会话库来设置和获取会话变量。 https://codeigniter.com/userguide3/libraries/sessions.html