2013-04-15 2 views
0

У меня есть установка Codeigniter, чтобы добавить префикс kms_ в мои активные запросы записи. Тем не менее, я пытаюсь сделать соединение с двумя условиями ON, и это не добавляет их.Добавление префикса таблицы для соединения в Codeigniter

Сейчас я должен вручную добавить их следующим образом:

$this->db->join('site_items', 'kms_site_items.item_id = kms_items.id AND kms_site_items.site_id = 1', 'left'); 

Могу ли я написать это по-разному, так что таблица префиксов добавлены правильно?

Есть ли способ, чтобы получить что-то вроде этого, чтобы работать:

$this->db->join('site_items', 'site_items.item_id = items.id AND site_items.site_id = 1', 'left'); 

ответ

4

Вы можете получить текущий префикс базы данных вручную, как это:

$prefixed_tablename = $this->db->dbprefix('tablename'); 

Таким образом, вы могли бы сделать это:

$this->db->join('site_items', $this->db->dbprefix('site_items') . '.item_id = ' . $this->db->dbprefix('items') . '.id AND ' . $this->db->dbprefix('site_items') . '.site_id = 1', 'left'); 

Docs Here

1

Вы можете просто добавить Prefix имя таблицы:
например, ваши таблицы имеют myPrefix_ в качестве префикса, а один из них может быть myprefix_user.
После этого в вашем config/database.php в нижней части этой страницы, где вы установите database name, username и password, Вы можете увидеть dbprefix, и вы можете установить свой префикс, как я уже упоминал выше myPrefix_.
В конце вы можете просто назвать свое имя таблицы, например $this->db->get('user'), и автоматически Codeigniter задает ваш префикс в первом из них.

Смежные вопросы