【发布时间】:2016-05-30 06:49:07
【问题描述】:
我有三个表(简化),它们是:
我必须显示每个用户的所有房屋。
在我的控制器中,我有这样的功能:
public function create_houses_table($usr_id)
{
$crud = new grocery_CRUD();
$crud->set_language("italian");
$crud->set_theme('datatables');
$crud->set_subject('Casette');
$crud->set_table('tbl_houses');
$crud->set_relation_n_n('Casette',
'tbl_users_houses',
'tbl_users',
'house_id',
'user_id',
'usr_name',
NULL,
array('user_id' => $usr_id));
...
}
我得到的是这样的:
每次我从组合中选择一个用户时,我都需要刷新我在 usr_id 上的列表过滤...但我总是得到所有的房子。
我错了什么?
【问题讨论】:
-
你应该使用 tbl_users 作为你的主表,然后用 $crud->where() 过滤它。但是,您将以该用户的单行表结束。这是你的意图吗?
-
嗨@jrierab 感谢您的回复!你的意思不是我想要的。每个用户拥有不同的房屋(例如,用户 1 -> HOUSE_1、HOUSE_4、HOUSE_7)。我需要的是一种仅显示与组合中选择的用户相关联的房屋的方法。我希望我很清楚:)
-
这不是 set_relation_n_n 的预期用途(它将在用户行内的一个字段中显示所有用户房屋)。您可以更好地从 tbl_users_houses 列出您想要的内容,使用 $crud->where() 按客户端过滤,并通过两个简单的关系与其他表链接。
-
嗨@jrierab,你是对的。我改变了我的逻辑,现在我能够完成我想要的。
-
嗨@Barzo,我刚刚添加了上面的评论作为答案,所以你可以接受它,如果你愿意的话。这样,问题就显示为已结束(已解决)。
标签: php codeigniter grocery-crud