recherche

Maison  >  Questions et réponses  >  le corps du texte

Puis-je ajouter l'option de requête « avec » à mes requêtes dirigées par un modèle ?

J'ai une requête, j'ai écrit une requête qui interroge les données

with last_sent_at as (
    Select offer_id, lead_id, max(created_at) as sent_at
    From offer_history
    Group by offer_id, lead_id)

Je dois le connecter au système de modèle Laravel. J'ai donc trois tableaux : leads => history => j'ai une demande Lead::with([..., 'offers'])->someFunction(?)->filters()->get();

J'ai besoin d'obtenir les données de 'last_sent_at' mais je ne sais pas comment le faire. J'ai essayé la sous-requête mais c'était très lent

P粉311563823P粉311563823429 Il y a quelques jours440

répondre à tous(1)je répondrai

  • P粉063862561

    P粉0638625612023-09-11 18:18:08

    Vous pouvez y parvenir en définissant le tableau historique comme tableau croisé dynamique, de sorte que la requête ressemblera à ci-dessous.

    $query = Lead::with([
                 'history' => function($history) {
                    $history->select(column names);
                },
                'history.offer' => function ($offer) {
                  $offer => select(column names);
                }])->where('Your condition')
                     ->get();

    répondre
    0
  • Annulerrépondre