Improve some search methods.

This commit is contained in:
James Cole 2015-07-07 09:46:19 +02:00
parent bdf7eee72f
commit 76a1b2cd51
4 changed files with 28 additions and 27 deletions

View File

@ -74,11 +74,12 @@ class Account extends Model
public static function firstOrCreateEncrypted(array $fields)
{
// everything but the name:
$query = Account::orderBy('id');
foreach ($fields as $name => $value) {
if ($name != 'name' && $name != 'iban') {
$query->where($name, $value);
}
$query = Account::orderBy('id');
$search = $fields;
unset($search['name'], $search['iban']);
foreach ($search as $name => $value) {
$query->where($name, $value);
}
$set = $query->get(['accounts.*']);
/** @var Account $account */
@ -107,11 +108,11 @@ class Account extends Model
public static function firstOrNullEncrypted(array $fields)
{
// everything but the name:
$query = Account::orderBy('id');
foreach ($fields as $name => $value) {
if ($name != 'name') {
$query->where($name, $value);
}
$query = Account::orderBy('id');
$search = $fields;
unset($search['name']);
foreach ($search as $name => $value) {
$query->where($name, $value);
}
$set = $query->get(['accounts.*']);
/** @var Account $account */

View File

@ -48,11 +48,11 @@ class Budget extends Model
public static function firstOrCreateEncrypted(array $fields)
{
// everything but the name:
$query = Budget::orderBy('id');
foreach ($fields as $name => $value) {
if ($name != 'name') {
$query->where($name, $value);
}
$query = Budget::orderBy('id');
$search = $fields;
unset($search['name']);
foreach ($search as $name => $value) {
$query->where($name, $value);
}
$set = $query->get(['budgets.*']);
/** @var Budget $budget */

View File

@ -43,11 +43,12 @@ class Category extends Model
public static function firstOrCreateEncrypted(array $fields)
{
// everything but the name:
$query = Category::orderBy('id');
foreach ($fields as $name => $value) {
if ($name != 'name') {
$query->where($name, $value);
}
$query = Category::orderBy('id');
$search = $fields;
unset($search['name']);
foreach ($search as $name => $value) {
$query->where($name, $value);
}
$set = $query->get(['categories.*']);
/** @var Category $category */

View File

@ -62,14 +62,13 @@ class Tag extends Model
public static function firstOrCreateEncrypted(array $fields)
{
// everything but the tag:
if (isset($fields['tagMode'])) {
unset($fields['tagMode']);
}
unset($fields['tagMode']);
$search = $fields;
unset($search['name']);
$query = Tag::orderBy('id');
foreach ($fields as $name => $value) {
if ($name != 'tag') {
$query->where($name, $value);
}
foreach ($search as $name => $value) {
$query->where($name, $value);
}
$set = $query->get(['tags.*']);
/** @var Tag $tag */