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

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

View File

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

View File

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

View File

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