私は2つのテーブルを持っています
Users Table => id , username
OrdersTable => order_id,user_id, qty,total
これらの2つのテーブルを。でリンクする必要があります。
idとuser_id。
食料品のCRUDでこれを行うにはどうすればよいですか。
私は2つのテーブルを持っています
Users Table => id , username
OrdersTable => order_id,user_id, qty,total
これらの2つのテーブルを。でリンクする必要があります。
idとuser_id。
食料品のCRUDでこれを行うにはどうすればよいですか。
OrdersTable
プライマリテーブルとして使用している場合は、 set_relation()1:1
を使用してリレーションシップを使用できます。これは、注文を表示していて、注文が属するユーザーを確認/設定したい場合です。
$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
どのユーザーが注文したかを確認できます。
要約すると、を使用する1:n
リレーションシップを使用set_relation_n_n()
すると、ユーザーによる注文と、注文のユーザーを表示できます。
クエリを意味する場合は、;
u.id、u.username、o.order_id、o.qty、o.totalを選択します ユーザーからu 左参加注文oon(o.user_id = u.id) ここで1=1