relations de réglage Épicerie CRUD
-
27-10-2019 - |
Question
J'ai 2 tables
Users Table => id , username
OrdersTable => order_id,user_id, qty,total
Je dois relier ces deux tables avec.
id et user_id.
Comment puis-je faire avec CRUD épicerie.
La solution
Si vous utilisez OrdersTable
comme votre table principale, vous pouvez utiliser une relation 1:1
en utilisant set_relation ( ) . Ce serait si vous regardiez un ordre et je voulais voir / set quel utilisateur l'ordre appartient.
$crud->set_table('OrdersTable');
$crud->set_relation('id','UsersTable','username');
Cela vous permettra de sélectionner l'utilisateur pour un ordre particulier.
Cependant, vraisemblablement un utilisateur peut avoir beaucoup INJONCTIONS une relation de 1:n
. Ce serait le cas si UsersTable est votre table principale, à savoir que vous visionnez un user
dans la CRUD et que vous voulez voir toutes les commandes associées.
Cette méthode nécessite une table intermédiaire, avec laquelle vous liez les deux tables existantes, et une légère modification de la structure de votre table existante. Vous auriez besoin d'enlever user_id
dans le OrdersTable
. Le tableau intermédiaire, pour le bien de l'argument appelé UserOrdersTable
, il faudrait les colonnes suivantes.
user_id INT
order_id INT
priority INT
Vous pouvez alors ajouter la relation à l'aide de la méthode set_relation_n_n () .
Vous pouvez ensuite inverser l'appel set_relation_n_n()
pour lors de l'affichage de la OrdersTable
afin que vous puissiez voir quel utilisateur a un ordre.
Pour résumer, une relation de 1:n
à l'aide set_relation_n_n()
vous permettra de visualiser les commandes par un utilisateur, et un utilisateur pour une commande.
Autres conseils
Si vous interrogez moyenne, puis;
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