0
我正在一個應用程序中,我需要在飛行中創建數據庫表,我這樣做。但是現在我需要一種優雅的方式來訪問數據庫表。所以這裏是我的問題Codeigniter 3創建動態方法
在常規實踐中,我們創建一個數據庫表並創建一個類來映射表(ORM)。但在這種情況下我不能採取這種方法。這是我到目前爲止所做的。
我擴展了Crud模型中的MY_Model,我嘗試在set_table()方法中設置數據庫表名。它工作正常。
class Crud extends MY_Model
{
private $customer_id;
public function __construct()
{
parent::__construct();
$this->_database = $this->load->database('customer', TRUE);
}
public function set_table($customer_id, $table_name)
{
$this->customer_id = $customer_id;
$this->_table = 'tbl_' . $customer_id . '_' . $table_name;
}
}
Test.php控制器測試代碼。
class Test extends CI_Controller
{
public function index(){
$this->load->model('editor/crud');
var_dump($this->crud->set_table(1, 'alpha'));
var_dump($this->crud->get_all());
}
}
但我需要一個優雅的方式來訪問表。例如。
$this->alpha->get_all()
OR
$this->crud->alpha->get_all()
會很容易理解&就會使多大意義。它實際上可以在PHP中做到嗎?任何幫助將是非常可觀的。
是否可以改變模型?我需要將它封裝在模型中。 – Fawzan