Laravel Blade Display с динамическими колоннами - PullRequest
0 голосов
/ 01 мая 2019

У меня есть успешный запрос к базе данных в моем контроллере с использованием DB :: select, который дает мне хороший массив результатов, которые я проверил.Я хотел бы расположить это в представлении так, чтобы я мог просматривать месяцы, отсортированные по данным, а также набор динамических столбцов в базе данных по конкретному портфелю.Я могу жестко закодировать значения в блейде, но, очевидно, это не сработает для динамических столбцов.

Я предоставил код, а также сделал несколько дополнительных запросов mysql, но безрезультатно.Я прочитал бесчисленное количество сообщений на форумах и не нашел ничего подходящего, поэтому я решил, что буду публиковать.

$monthly_paid = DB::select('select year(date) as year, month(date) as month, sum(payment_amount) as total_monthly, p.portfolio_name as portfolio, 
payment_amount, paid from funds
join portfolios as p where funds.portfolio_id = p.id and hide = 0
group by year(date), month(date), portfolio');
dd($monthly_paid);

Результаты запроса:

array:12 [▼
0 => {#217 ▼
+"year": 2018
+"month": 1
+"total_monthly": 2900.0
+"portfolio": "TW-CS"
+"payment_amount": "2900"
+"paid": 1
} ... etc.

Вот мой клинокпопытка:

 @foreach ($monthly_paid as $monthly)
        <div class="row">
                <?php $monthNum = $monthly->month;
                        $dateObj = DateTime::createFromFormat('!m', $monthNum);
                        $monthName = $dateObj->format('F');?>
                <div class="col-md-1">{{ $monthly->year }}</div>
                <div class="col-md-1">{{ $monthName }}</div>
                <div class="col-md-1">
                @if($monthly->portfolio == "TW-CS")
                @if($monthly->paid == 1)
                <button type="button" class="btn btn-success btn-sm">
                        ${{ number_format($monthly->payment_amount) }}
                </button>
                @else
                ${{ number_format($monthly->payment_amount) }}
                @endif
                @endif
                </div>
                <div class="col-md-1">
                @if($monthly->portfolio == "TW-C12")
                @if($monthly->paid == 1)
                <button type="button" class="btn btn-success btn-sm">
                        ${{ number_format($monthly->payment_amount) }}
                </button>
                @else
                ${{ number_format($monthly->payment_amount) }}
                @endif
                @endif
 </div>
                <div class="col-md-1">
                @if($monthly->portfolio == "TW-C22")
                @if($monthly->paid == 1)
                <button type="button" class="btn btn-success btn-sm">
                        ${{ number_format($monthly->payment_amount) }}
                </button>
                @else
                ${{ number_format($monthly->payment_amount) }}
                @endif
                @endif
                </div>
                <div class="col-md-2" style="background-color:#333333; color:#FFFFFF;">${{ number_format($monthly->total_monthly) }}</div>
        </div>
        @endforeach

Я пытаюсь получить следующий формат:

    TW-CS     TW-C12    TW-C22    TOTAL AMOUNT PAID
    $7500     $7800     $8200     $23,500

Первый столбец - месяц, второй столбец - портфель 1, третий столбец - портфель 2, четвертый столбецэто портфель 3, а последний столбец - это сумма.

Очевидно, что в жестком коде он отображается правильно, но я пытаюсь его автоматизировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...