По умолчанию MY_Model не поддерживает несколько таблиц, однако вы можете очень легко создавать методы - я люблю называть их областями - для эффективного и элегантного связывания с другими таблицами.
Допустим, у нас есть post_model.php , который должен извлечь данные из таблицы category . Я предполагаю, что мы хотим ввести наше category.name на основе post.category_id .
class Post_model extends MY_Model
{
public function with_category()
{
$this->db->join('categories', 'categories.id = post.category_id', 'left');
$this->db->select('categories.name AS category_name');
return $this;
}
}
Затем мы можем использовать наш метод with_category()
(связанный со всеми нашими встроенными MY_Model методами), чтобы получить информацию о нашей категории:
$this->post_model->with_category()
->get_all();
или с get_by()
:
$this->post_model->with_category()
->get_by('status', 'open');
Скоупинг - это крутой способ добавления других таблиц в ваши модели, при этом все еще используются все классные вещи MY_Model .