设置关系杂货CRUD

时间:2011-12-04 07:06:24

标签: codeigniter crud grocery-crud

我有2张桌子

Users Table => id , username
OrdersTable => order_id,user_id, qty,total

我需要用。链接这两个表。

  

id和user_id。

我怎么能用杂货CRUD做这件事。

2 个答案:

答案 0 :(得分:3)

如果您使用OrdersTable作为主要表格,则可以使用set_relation()使用1:1关系。如果您正在查看订单并希望查看/设置订单所属的用户,那就是这样。

$crud->set_table('OrdersTable');
$crud->set_relation('id','UsersTable','username');

这将允许您选择特定订单的用户。

但是,可能用户可能有很多订单 - 1:n关系。如果UsersTable是您的主要表格,即您在CRUD中查看user并希望查看所有相关订单,就会出现这种情况。

此方法需要一个中间表,您可以使用该中间表链接两个现有表,并对现有表结构稍作更改。您需要删除user_id中的OrdersTable。中间表,为了名为UserOrdersTable的参数,需要以下列。

user_id INT
order_id INT
priority INT

然后,您可以使用set_relation_n_n()方法添加关系。

然后,您可以在查看set_relation_n_n()时撤消OrdersTable来电,以便查看哪个用户下了订单。

总而言之,使用1:n的{​​{1}}关系将允许您查看用户和订单用户的订单。

答案 1 :(得分:-1)

如果您的意思是查询,那么;

select u.id, u.username, o.order_id, o.qty, o.total
from users u
left join orders o on(o.user_id = u.id)
where 1=1