Я работаю в приложении, где мне нужно создавать таблицы базы данных «на лету», я сделал это. Но теперь мне нужен элегантный способ доступа к таблицам базы данных. Итак, вот моя проблемаCodeigniter 3 create dynamic methods
В обычной практике мы создаем таблицу базы данных и создаем класс для сопоставления таблицы (ORM). Но я не могу принять такой подход в этом случае. Это то, что я сделал до сих пор.
Я расширяю MY_Model в модели Crud, я пытаюсь настроить имя таблицы базы данных в методе 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 для проверки кода.
Но мне нужен элегантный способ доступа к столу. например.
$this->alpha->get_all()
ИЛИ
$this->crud->alpha->get_all()
было бы легко понять & он будет делать много смысла. Можно ли это сделать в PHP? Любая помощь будет очень заметной.
Возможно ли изменение в модели? Мне нужно, чтобы он был инкапсулирован в модель. – Fawzan