リレーションの食料品のクラッドを設定します
-
27-10-2019 - |
質問
2つのテーブルがあります
Users Table => id , username
OrdersTable => order_id,user_id, qty,total
これらの2つのテーブルをリンクする必要があります。
idとuser_id。
食料品のクラッドでこれを行うにはどうすればよいですか。
解決
使用している場合 OrdersTable
プライマリテーブルとして、aを使用できます 1:1
使用を使用する関係 set_relation(). 。これは、注文を表示していて、注文が属するユーザーを表示/設定したい場合になります。
$crud->set_table('OrdersTable');
$crud->set_relation('id','UsersTable','username');
これにより、特定の注文に対してどのユーザーを選択できます。
ただし、おそらくユーザーは多くの注文を持っているかもしれません - 1:n
関係。これは、usersTableがあなたの主要なテーブルである場合、つまり、 user
CRUDで、関連するすべての注文を見たいと思っています。
この方法には、2つの既存のテーブルをリンクし、既存のテーブル構造にわずかな変更を行う仲介テーブルが必要です。削除する必要があります user_id
の中に OrdersTable
. 。議論のために、中間テーブル UserOrdersTable
次の列が必要です。
user_id INT
order_id INT
priority INT
その後、次のように関係を追加できます set_relation_n_n() 方法。
その後、を逆にすることができます set_relation_n_n()
表示する際に呼びかけます OrdersTable
そのため、どのユーザーが注文したかを確認できます。
要約すると、a 1:n
使用を使用する関係 set_relation_n_n()
ユーザーによる注文、およびユーザーが注文の注文を表示できるようにします。
他のヒント
クエリを意味する場合は、
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
所属していません StackOverflow