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.

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top