Interrogation de l'existence d'une relation, comment ajouter des conditions en fonction d'une longueur de tableau

Ber Tsacanegu del Tepuy

Je voudrais filtrer un élément (pubs, dans ce cas) par certaines caractéristiques qui sont stockées dans une table séparée (tapps, dans ce cas), et les deux sont liés par pub_tapps.

J'ai les tables suivantes : pubs, tapps, pub_tapps(pub_id, tapp_id)

La relation entre Pub et Tapp est la suivante :

 public function pubTapps()
{
    return $this->belongsToMany(Tapp::class, 'pub_tapps');
}

dans mon modèle Pub, j'ai essayé les tests suivants pour un tableau $request=[5,8, 7] :

public function pubsFilteredByTapps(FilteredTappsPubsRequest $request)
{
    $tapps_chosen = $request->get('tapps');

    $tapps_chosen = is_string($tapps_chosen) ? explode(',', str_replace('"', '', $tapps_chosen)) : $tapps_chosen;

    return Pub::whereHas('pubTapps', function($query) use($tapps_chosen) {
        $query->where('tapp_id', $tapps_chosen[0]);
    })
        ->whereHas('pubTapps', function($query) use($tapps_chosen) {
            $query->where('tapp_id', $tapps_chosen[1]);
        })
        ->whereHas('pubTapps', function($query) use($tapps_chosen) {
            $query->where('tapp_id', $tapps_chosen[2]);
        })
        ->get();
}

Cela fonctionne parfaitement, mais pour un tableau en 3 dimensions donné...

Comment puis-je faire pour un tableau d'une longueur n ??

J'ai essayé ceci, mais cela ne fonctionne pas du tout (renvoie un tableau vide):

return $pubs = Pub::whereHas('pubTapps', function ($query) use 
     ($tapps_chosen) {

        foreach ($tapps_chosen as $tappId) {
            $query->where('tapp_id', $tappId);
      }
       })->get();

Que devrais-je faire ??? Des idées pour que ça marche ??

Merci beaucoup!

Jonas Staudenmeir

Utilisez ceci:

$query = Pub::query();
foreach ($tapps_chosen as $tappId) {
    $query->whereHas('pubTapps', function($query) use($tappId) {
        $query->where('tapp_id', $tappId);
    });
}
return $query->get();

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment ajouter des valeurs de tableau après avoir dépassé une certaine longueur en Java

Comment compter les modèles liés lors de l'interrogation de l'existence d'une relation via whereHas ?

Ajouter des données dans une trame de données en fonction de l'existence d'un ID

Comment aborder l'interrogation d'une table parent en fonction des valeurs d'une table enfant et d'une table de données liée aux tables enfant?

Comment remplir une colonne dans un dataframe en fonction des conditions d'un dataframe de longueur différente?

Sélectionnez la ligne en fonction de l'existence d'une autre ligne de tableau

Comment ajouter des lignes de code lors de l'appel d'une fonction en fonction d'un itérateur sur Python

Comment diviser un objet JSON en fonction de l'existence d'une valeur de texte?

Ajouter des zéros à la matrice de données en fonction de la longueur d'une autre matrice en conservant l'ordre des noms de colonne

Échantillonnage d'éléments de longueur variable à partir d'une liste en fonction des poids

comment trier un tableau de chaînes en fonction des éléments d'une autre liste

Ajouter une colonne de sortie en fonction des conditions d'un autre ensemble de données

Mise à jour des valeurs en fonction de l'existence d'une valeur

Comment créer une liaison d'options de sélection par défaut en fonction des conditions d'entrée à l'aide d'une carte de tableau Knockout JS?

Comment puis-je ajouter une propriété au nœud de retour en fonction de l'existence ou non de la relation dans NEO4J

Laravel 5.5 Comment ajouter des conditions dynamiques à l'intérieur d'une relation?

Définition de la valeur des colonnes booléennes en fonction de l'existence d'une valeur dans l'ensemble

Définition des valeurs en fonction de l'existence ou non de l'ID d'hôte dans une liste

Comment combiner des dataframes de longueur inégale en fonction d'une condition

Comment ajouter un bouton de point d'interrogation [?] En haut d'une fenêtre tkinter

Agrégation d'une trame de données Spark et comptage en fonction de l'existence d'une valeur dans une colonne de type tableau

Comment ajouter des données à une trame de données en fonction d'une autre colonne ?

Comment ajouter des arguments supplémentaires à une commande en fonction de la valeur d'une variable?

Mise à jour d'une ligne dans un tableau en fonction des conditions de colonne

Comment «découper» une paire de listes en fonction des valeurs de l’une d’elles

Flutter: comment ajouter une logique "if" à l'intérieur d'une fonction de construction en flutter

Comment passer le total des éléments d'un tableau en tant que paramètre de position d'une fonction?

Comment créer une longueur de tableau en fonction des entrées des utilisateurs

Comment ajouter une fonction d'itération en boucle pour calculer la durée à partir des dates de sélection des valeurs d'objet de tableau ?

TOP liste

  1. 1

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  2. 2

    J'ai besoin de savoir si ces deux phrases sont les mêmes en programmation

  3. 3

    Microsoft.WebApplication.targets

  4. 4

    Création d'un nouvel objet d'une classe avec un nouveau nom en cliquant sur un bouton dans java swing

  5. 5

    La taille de la forme n'est pas égale à la taille de la cellule du tableau et ajuste le texte à l'intérieur de la forme

  6. 6

    Javascript indiquant "impossible de définir la propriété 'innerHTML' sur null"

  7. 7

    Pourquoi utiliser Asyncio ne réduit pas le temps d'exécution global en Python et n'exécute pas les fonctions simultanément?

  8. 8

    Création d'un rappel python pour une fonction C à partir d'une DLL avec un tampon char.

  9. 9

    Trouver l'intersection et l'union de deux rectangles

  10. 10

    Comment convertir une chaîne en tuple en utilisant `reads`?

  11. 11

    Empêcher l'allocation de mémoire dans la génération de combinaison récursive

  12. 12

    Restauration de la sauvegarde de la base de données SQL Server sur la version inférieure

  13. 13

    Nextcloud avec Docker: impossible de créer ou d'écrire dans le répertoire de données

  14. 14

    Compter combien de fois un nombre apparaît dans un tableau aléatoire

  15. 15

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

  16. 16

    java.lang.NoClassDefFoundError: org / springframework / data / repository / config / BootstrapMode

  17. 17

    Créer un graphique à barres avec une fréquence relative / à partir d'un objet de table dans R

  18. 18

    comment le contrôle de tableau javascript devrait-il être

  19. 19

    Importation bizarre de Google Sheets importxml - Impossible d'obtenir le chemin correct vers les éléments

  20. 20

    Injecter des éléments dans une liste existante au printemps

  21. 21

    Placez le modeBar en haut au centre à l'aide de plotly.js

chaudétiquette

Archive