Improve sortability in various lists.

This commit is contained in:
James Cole
2016-11-20 15:30:16 +01:00
parent 78f297e18f
commit 0b613c3b8c
7 changed files with 83 additions and 55 deletions

View File

@@ -57,6 +57,30 @@ class Preferences
return $this->getForUser(auth()->user(), $name, $default);
}
/**
* @param User $user
* @param array $list
*
* @return array
*/
public function getArrayForUser(User $user, array $list): array
{
$result = [];
$preferences = Preference::where('user_id', $user->id)->whereIn('name', $list)->get(['id', 'name', 'data']);
/** @var Preference $preference */
foreach ($preferences as $preference) {
$result[$preference->name] = $preference->data;
}
foreach ($list as $name) {
if (!isset($result[$name])) {
$result[$name] = null;
}
}
return $result;
}
/**
* @param \FireflyIII\User $user
* @param string $name