0
votes

Est-ce une seule base de données ou deux? Est autorisé après avoir obtenu () à Laravel Eloquant?

est où permis après avoir obtenu () à Laravel Eloquant? Est-ce que cette base de données est une interrogation ou deux?

Étudiant :: Où ('Rank_ID', 1) -> Obtenez () -> Où ('ID', 29152);


0 commentaires

3 Réponses :


0
votes

Oui, il est autorisé comme étudiant :: Où ('Rank_ID', 1) -> Obtenez () Retourne la collection et vous pouvez chaîner des résultats de la collection en utilisant où.

Reportez-vous à Illuminate> Support> Collection.php Pour plus de détails sur les fonctions pouvant être utilisées sur une collection


1 commentaires

Ce sera une requête comme votre chaînage sur la collecte la partie avant d'où («ID», 29152); Obtient des résultats de la base de données.



1
votes

Cette partie étudiant :: Où (rank_id ', 1) -> get () effectuera une requête dans la base de données et le -> où (' ID ', 29152) ; filtrera la collection déjà récupérée sans faire une autre requête.

https://laravel.com/docs/5.7/collections#method-wers


1 commentaires

Il faut ajouter qu'il est préférable d'utiliser où () sur le constructeur de requêtes que sur des collections dans la mesure du possible, car la performance des requêtes de la base de données est normalement meilleure. Ce qui est le mieux dépend du cas d'utilisation exacte et des autres détails.



0
votes

Laravel se connecte à différentes bases de données utilise Connexions . Donc, jusqu'à ce que vous ne spécifiez aucune connexion:

  1. en appelant explicitement dB :: connexion ()
  2. ou en spécifiant protégé $ connexion = 'second_db_connection'; dans l'un de vos modèles éloquents

    Vous traitez essentiellement d'une seule connexion par défaut qui signifie une seule base de données.

    dans votre requête étudiant :: Où ("Rank_ID ', 1) -> Obtenez () -> où ('id', 29152) , il devrait être: xxx

    C'est la syntaxe utilisée par requête Builder, qui est au format. -> get () est utilisé pour appliquer les sélections et les filtres que vous avez appliqués sur une requête. Alors où devrait être avant obtenir () .

    voir Documentation pour plus d'aide.


0 commentaires