在CI中,你如何将模型相互关联?我现在有四个模型用户,UsersDepartment,UsersToDepartment,UserStatus和我需要加入这四个模型才能获取所有数据。
我在我的控制器中有这个代码从用户表中选择所有用户数据:
function view($user_id){
$data['user'] = $this->User_model->get_by_id($user_id)->row();
}
保存在Users表中的user_status只是status_id,因此我需要连接到UserStatus表以获取users_status_id的等效名称。我需要知道用户所属的组列表。所以我需要根据Users.userid从UsersToDepartment表中获取它。然后在UsersDepartment表中获取等效的组名。请参阅我的图表以进一步解释。
我知道在本机PHP中,这可以通过使用join来完成。如何在CI中完成?
我知道yii,你可以这样做
$posts=Post::model()->with(
'author.profile',
'author.posts',
'categories')->findAll();
CI也可以吗?
例如你有table_one
并想使用他们的id加入table_two
$this->db->select('columns');
$this->db->from('table_one');
$this->db->join('table_two', 'table_two.id = table_one.id');
//then do the query
您可以阅读以下链接获取更完整的教程:
https://www.codeigniter.com/userguide2/database/active_record.html
代码点火器不是php的ORM框架...
你不能像ORM框架那样对待它(Laravel是ORM框架的好例子)。
但你可以通过连接查询来模拟它。
这项工作只是让你得到其他模型数据,而不是给你那些模型对象...
请参阅$this->db->join();
中的Active Record: CodeIgniter标题
我知道codeigniter在这里不是那么好。所以我总是喜欢Yii而不是它。
尝试使用此连接表的查询
Select a.*,b.*
from table_one a
inner join table_two b where b.id=a.id