Ben bir tablo var (hesaplar)MySQL regex
+---------+------------------------------------+-------------+--------+---------+-------------+--------------------+-------------+-------------+-------------+------------------+---------------------+---------------------+ | ID | Name | category_id | Active | Balance | Description | UnallocatedAccount | IsTaxLocked | AccountType | HasActivity | DefaultTaxTypeId | Modified | Created | +---------+------------------------------------+-------------+--------+---------+-------------+--------------------+-------------+-------------+-------------+------------------+---------------------+---------------------+ | 6123359 | Accounting Fees | 4 | 1 | 0.00 | | 0 | 0 | 1 | 0 | 1509579 | 2016-03-19 15:06:34 | 2016-03-19 15:06:34 | | 6123360 | Advertising | 4 | 1 | 0.00 | | 0 | 0 | 1 | 0 | 1509579 | 2016-03-19 15:06:34 | 2016-03-19 15:06:34 | | 6123357 | Bad Debts Recovered | 3 | 1 | 0.00 | | 0 | 0 | 1 | 0 | 1509579 | 2016-03-19 15:06:34 | 2016-03-19 15:06:34 |
Ve işlemler tablom şu şekilde görünür:
+-------+------------+------------+-------------------------------------------------------------+-----------------------------+----------+------------+---------------+---------------------+---------------------+ | id | foreign_id | date | description | short_description | amount | balance | function_code | created_at | updated_at | +-------+------------+------------+-------------------------------------------------------------+-----------------------------+----------+------------+---------------+---------------------+---------------------+ | 38322 | | 2015-12-01 | MONTHLY ACC FEE HEADOFFICE | | -59.50 | -181792.19 | SERM | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38323 | | 2015-12-01 | TRANSACTION CHARGE HEADOFFICE | | -198.75 | -181990.94 | TRNC | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38324 | | 2015-12-01 | CASH DEPOSIT FEE HEADOFFICE | | -2638.01 | -184628.95 | CSHC | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38325 | | 2015-12-01 | OD: LEDGER FEE HEADOFFICE | | -40.00 | -184668.95 | FACF | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38326 | | 2015-12-01 | DEBIT INTEREST HEADOFFICE | | -2390.35 | -187059.30 | INDR | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38327 | | 2015-12-01 | STOP ORDER FROM SETTLEMENT ABSA BANK 123.com | ABSA BANK 123.com | 30.00 | -187029.30 | SIC | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38328 | | 2015-12-01 | STOP ORDER FROM SETTLEMENT ABSA BANK acc8469 | ABSA BANK acc8469 | 29.90 | -186999.40 | SIC | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38329 | | 2015-12-01 | STOP ORDER FROM SETTLEMENT ABSA BANK 321.co.za | ABSA BANK loxizea.co.za | 29.99 | -186969.41 | SIC | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38330 | | 2015-12-01 | STOP ORDER FROM SETTLEMENT ABSA BANK cceyc | ABSA BANK cceyc | 30.00 | -186939.41 | SIC | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | | 38331 | | 2015-12-01 | STOP ORDER FROM SETTLEMENT ABSA BANK 178444 123 | ABSA BANK 178444 123 | 35.00 | -186904.41 | SIC | 2016-03-16 14:03:27 | 2016-03-16 14:03:27 | +-------+------------+------------+-------------------------------------------------------------+-----------------------------+----------+------------+---------------+---------------------+---------------------+
Artık işlemleri filtrelerimle nasıl eşleştirebilirim? Her filtre aracılığıyla döngü şöyle:
$filters = \App\Models\Transaction\Filter::All();
$transactions = \App\Models\Transaction::All();
$data = [];
foreach($transactions as $transaction)
{
foreach($filters as $filter)
{
if(preg_match("/" . $filter->Expression . "/", $transaction->description))
{
$data[] = [
'date' => $transaction->date,
'ContactName' => $filter->ContactName,
'account_id' => $filter->account_id,
];
}
}
}
dd($data);
transaction_filters işlemlerle 1-N arasındaki bir ilişki ise, işlemler_filters tablonuzda neden işlem kimliği kaydetme neden olmasın? Bize neden regexp'e ihtiyacın olduğunu açıklayabilir misin? Belki de N-N olduğu için mi? – subzeta
İşlemler tablosu 20000'den fazla banka işlemine sahiptir, bu yüzden filtreler, işlemin bir satış, maaş, vb. Olup olmadığını bilmek için tahsisat ile yardımcı olur. İlk yazımda net değildim, onu düzenleyeceğim. – Kyle