ich das follwing Problem haben, ich habe zwei Modelle, Niveau und Klasse, jede Ebene viele Klassen im Inneren hat, muss ich auf einmal alle Level-Klassen hinzuzufügen, mit dem follwing Format:Filter eloquent Beziehungen Daten
$levelclasses['0'][level_id]=1;
$levelclasses['0'][class][0][supervisor_id]=2;
$levelclasses['1'][level_id]=2;
$levelclasses['1'][class][0][supervisor_id]=2;
ich habe diese erfolgreich: nur die eingefügten Klassen
$levelNewClasses;
$ids;
$count=0;
foreach ($data['levelclasses'] as $levelClass) {
$level=\App\InstituteLevel::find($levelClass['level_id']);
$ids[$count]=$level->id;
$count++;
foreach ($levelClass['class'] as $classdata) {
$class= new \App\EClass($classdata);
$class->school_year_id=\App\SchoolsYear::first()->id;
$level->classes()->save($class);
$levelNewClasses[$level->id][$class->id]=$class->id;
}
}
aber jetzt möchte ich mit der Antwort zurück, nicht alle Klassen, wenn ich dies tun:
$level->classes;
es wird alles zurückgeben, so dass ich die neuen Klassen-IDs in einem Array gespeichert und jetzt versuche ich, die Klassen zu filtern zurück aus dieser Beziehung $ Ebene-> Klassen basierend auf Thesen ids, habe ich versucht, diesen
foreach ($levels as $level){
$levelclasses=$level->classes->pluck('id');
$level->classes=$levelclasses->intersect($levelNewClasses[$level->id]);
}
aber das geht nicht! , Irgendwelche Vorschläge?
was meinst du mit ** eingefügte Klassen **? Können Sie den Code hinzufügen, in den Sie die Klasse einfügen? – jaysingkar
Ich habe den Code, ich meine durch eingefügte Klassen, sind nur die Klassen, die mit dieser Anfrage erstellt, wenn ich auf die Beziehung zugreifen, gibt es alle Klassen zurück. –
Wenn Sie die eingefügten Klassen zurückgeben möchten, geben Sie einfach die von der Anfrage empfangenen Klassen zurück. In diesem Fall ist Ihre '$ levelClass ['class']' Variable. – jaysingkar