Model - Relation avec 2 paramètres
Bonjour,
J'ai deux tables :
- activites
- id
- activite_numero
- activite_tache
- etc.
- activites_planifiees
- id
- statut
- activite_numero
- activite_tache
- etc.
La table "activites" contient des tâches à réaliser, pour un même numéro d'acitivité je peux avoir plusieurs tâches. La table "activites_planifiees" contient des activités/tâches planifiées.
Il est à savoir que je n'ai pas la possibilité de mettre directement l'ID de la table "activites" dans "activites_planifiees" pour créer une relation "hasMany" dans mon modèle "Activites".
Je souhaite à partir d'une activité/tâche avoir une relation me remontant toutes les activités/tâches planifiées correspondantes. De tout ce que j'ai pu voir je n'ai pas la possibilité de créer une relation hasMany avec deux paramètres.
Modèle "activites" ;
class Activites extends Model
{
// ... Tout ce qui va bien au fonctionnement du modèle...
public function planificationsLiees ()
{
// Cas pas possible car impossible de baser une relation sur plusieurs paramètres
return $this->hasMany(ActivitesPlanifiees::class, 'LaPasPossibleDeMettreDeuxParamètres')
// Ca ne se fait pas mais en gros c'est ce que je voudrais qui me soit retourné dans ma relation
return ActivitesPlanifiees->where('activite_numero', $this->activite_numero)
->where('activite_tache', $this->activite_tache)
->where('status', 'valide')
->get()
}
}
Modèle "activites_planifiees" ;
class ActivitesPlanifiees extends Model
{
// ... Tout ce qui va bien au fonctionnement du modèle...
}
Mon controlleur :
class ActivitesController extends Controller
{
public function show($activiteId) {
$activite = Activites::with('planificationsLiees')->find($activiteId);
}
}
Si vous avez une solution simple pour que je mette en oeuvre cette relation je suis preneur de tout conseil :)
Salut,
Par défaut Eloquent ne gère pas plusieurs clés mais il existe le package compoships.
Bonjour Bestmomo,
Je viens de tester, ca fonctionne à merveille. Je te remercie.
Vous ne pouvez pas répondre à ce sujet.