Skip to content

Instantly share code, notes, and snippets.

@alfred-dub
Last active April 4, 2017 11:03
Show Gist options
  • Save alfred-dub/543e4b173ddc027adf77ab95e110b997 to your computer and use it in GitHub Desktop.
Save alfred-dub/543e4b173ddc027adf77ab95e110b997 to your computer and use it in GitHub Desktop.
Useful Phalcon snippets
<?php
// @see http://stackoverflow.com/a/28769763/1977778
$queryBuilder = $this->getDI()->getModelsManager()
->createBuilder()
->columns(['p.id','participants.*'])
->addFrom('Entity\Projects', 'p')
->leftJoin('Entity\Participants', 'participants.projectId = p.id', 'participants')
->groupBy('p.id, participants.id')
->orderBy('p.id ASC');
$resultSet = $queryBuilder->getQuery()->execute();
$this->_loadRelations(['UserAccount', 'UserProfile']);
$aParams = [
'models' => [
'user' => '\Phapp\Models\User'
],
'columns' => [
'user.userpk',
'user_account.user_accountpk',
'user_profile.user_profilepk'
],
'joins' => [
['\Phapp\Models\UserAccount', 'user_account.userfk = user.userpk', 'user_account', "INNER"],
['\Phapp\Models\UserProfile', 'user_profile.user_accountfk = user_account.user_accountpk', 'user_profile', "INNER"]
]
];
$oQueryBuilder = $this->modelsManager->createBuilder($aParams);
$oQueryBuilder->where('user.email = :email:', ['email' => $psEmail]);
if (!empty($piClientpk)) {
$oQueryBuilder->andWhere('user_profile.clientfk = :clientpk:', ['clientpk' => $piClientpk]);
}
$aUserData = $oQueryBuilder->getQuery()->getSingleResult();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment