我想基于$ _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']的输出,是否有针对此方法或其他方式更改模型表的方法?
答案 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