代码点火器模型与模型关系

问题描述 投票:3回答:4

在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也可以吗?

codeigniter models table-relationships
4个回答
7
投票

例如你有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


3
投票

代码点火器不是php的ORM框架...

你不能像ORM框架那样对待它(Laravel是ORM框架的好例子)。

但你可以通过连接查询来模拟它。

这项工作只是让你得到其他模型数据,而不是给你那些模型对象...


0
投票

请参阅$this->db->join();中的Active Record: CodeIgniter标题

我知道codeigniter在这里不是那么好。所以我总是喜欢Yii而不是它。


-2
投票

尝试使用此连接表的查询

Select a.*,b.*
from table_one a
inner join table_two b where b.id=a.id
© www.soinside.com 2019 - 2024. All rights reserved.