I have a model with a hasManyToMany() relationship. I'm trying to retrieve some of the related models by adding a condition, but I'm getting an exception (formatted for readability):
Phalcon\Mvc\Model\Exception: Can't obtain model's source from models list: 'Model\MailingList', when preparing:
SELECT
[\Model\MailingList].*
FROM
[\Model\MailingList]
INNER JOIN
[\Model\EmailMailingList] ON
[\Model\EmailMailingList].[mailing_list_id] = [\Model\MailingList].[id]
WHERE
(queued = 0) AND
([\Model\EmailMailingList].[email_id] = :APR0:)
Here is my relationship setup:
$this->hasManyToMany(
'id'
,'\Model\EmailMailingList'
,'email_id','mailing_list_id'
,'\Model\MailingList'
,'id'
,['alias'=>'MailingLists']
);
And my method call to the relationship:
$this->getMailingLists('queued = 0');
If I just call $this->getMailingLists()
the query works fine. Adding the condition causes the error listed above. Just to be sure, I added a getSource() method to the MailingList class.
Is this a bug? I'm running 3.4.2.
Update When I duplicate the query using the query builder, it works fine:
SELECT
\Model\MailingList.*
FROM
\Model\MailingList
INNER JOIN
\Model\EmailMailingList ON
\Model\EmailMailingList.mailing_list_id = \Model\MailingList.id
WHERE
queued = 0 AND
\Model\EmailMailingList.email_id = :email_id: