2017-09-12 5 views
0

Comment effectuer FindAll avec WHERE en utilisant alias comprennent associationFindAll où l'utilisation inclure avec le champ d'alias dans sequelize

Maintenant, j'ai ce code:

Photobook.findAndCountAll({ 
    include: [ 
     { 
     attributes: ['full_name'], 
     as: 'layouter_name', 
     model: UserModel, 
     }, 
     { 
     attributes: ['full_name'], 
     as: 'current_pic', 
     model: UserModel, 
     } 
    ], 
    where:{ 
     { 
     '$current_pic.full_name$' : { 
      $like: '%name%' 
     } 
     } 
    } 
}); 

Il ne fonctionne pas puisque le modèle Photobook don » t avoir current_pic.full_name champ. Je veux juste rechercher l'association current_pic au lieu de l'association layouter_name.

Comment effectuer quelque chose comme ça?

Répondre

0

Essayez ceci:

Photobook.findAndCountAll({ 
    include: [ 
     { 
     attributes: ['full_name'], 
     as: 'layouter_name', 
     model: UserModel, 
     }, 
     { 
     attributes: ['full_name'], 
     as: 'current_pic', 
     model: UserModel, 
     where: { 
      full_name: { 
       $like: '%name%' 
      } 
     }, 
     required: true 
     } 
    ] 
}); 

Vous pouvez donner où l'état lui-même dans le tableau include. required: true garantit que le JOIN est traité comme INNER JOIN