ProfileStorage.php in Profile 8
File
src/ProfileStorage.php
View source
<?php
namespace Drupal\profile;
use Drupal\Core\Entity\Sql\SqlContentEntityStorage;
use Drupal\Core\Session\AccountInterface;
class ProfileStorage extends SqlContentEntityStorage implements ProfileStorageInterface {
public function loadMultipleByUser(AccountInterface $account, $profile_type_id, $published = TRUE) {
$query = $this
->getQuery();
$query
->condition('uid', $account
->id())
->condition('type', $profile_type_id)
->condition('status', $published)
->sort('is_default', 'DESC')
->sort('profile_id', 'DESC')
->accessCheck(FALSE);
$result = $query
->execute();
return $result ? $this
->loadMultiple($result) : [];
}
public function loadByUser(AccountInterface $account, $profile_type_id) {
$query = $this
->getQuery();
$query
->condition('uid', $account
->id())
->condition('type', $profile_type_id)
->condition('status', TRUE)
->sort('is_default', 'DESC')
->sort('profile_id', 'DESC')
->range(0, 1)
->accessCheck(FALSE);
$result = $query
->execute();
return $result ? $this
->load(reset($result)) : NULL;
}
public function loadDefaultByUser(AccountInterface $account, $profile_type_id) {
$result = $this
->loadByProperties([
'uid' => $account
->id(),
'type' => $profile_type_id,
'status' => TRUE,
'is_default' => TRUE,
]);
return !empty($result) ? reset($result) : NULL;
}
}